Image Tools
Sharp Stock integrates commonly used image preprocessing tools for artists and planners, allowing for quick processing and optimization of assets without the need to open heavy design software.
1. Functional Tools Description
When you select a supported bitmap format (such as PNG, JPG, WebP), the following processing tools will automatically appear in the right detail panel. You can also right-click the asset to use the same tools: Resize, GIF Compression, Tinify, Quick Cutout, AI Smart Matting, and Auto Slice are top-level menu items, while rotation and flip commands are grouped under the Image Edit submenu.
- Lossless Rotation: Supports rapid clockwise or counter-clockwise 90° rotation.
- Mirror Flip: Provides mirroring in both horizontal and vertical dimensions.
- Resize:
- Custom Specs: Supports manual entry of target width and height.
- Aspect Ratio Lock: Aspect ratio locking is enabled by default to ensure images are not stretched or distorted.
- Quick Presets: Provides one-click conversion to common sizes such as 128px, 256px, and 1024px.
- BMP images: Common BMP files can be resized and remain BMP files by default. Transparent and translucent regions follow the source alpha channel; transparency cannot be recovered when the original file does not contain clear transparency information.
- GIF animation preservation: When resizing an animated GIF, keep the
.gifextension in the new filename. The generated GIF retains all animation frames, playback timing, and loop settings. Changing the extension to a static format such as PNG generates only the first frame. - Processing progress: A full-screen progress indicator is displayed while resizing. Processing time for an animated GIF depends on its dimensions and frame count; wait for processing to finish before continuing.
- Tinify (smart compression):
- The button’s hover tooltip reflects the mode selected in Settings (for example, “Compress PNG with Squoosh”).
- Squoosh (local): PNG quantization and optimization on device; no network or API key required. Available on all channels including Steam.
- TinyPNG (cloud): Uses the TinyPNG service; requires an API token in Settings. Not available on Steam full version and Steam Demo.
- Batch processing: Select multiple PNG files, then use Tinify from the right-click menu. The command is shown only when every selected file is PNG. The results are staged in a temporary directory first, and the Old vs. New Image Comparison dialog opens automatically once processing finishes (see below); you can preview the results before deciding to save or replace.
- Lite / Demo asset limit: Before clicking Save All, Sharp Stock calculates the number of genuinely new assets. If a same-named output file already exists in the target location, it is silently overwritten (and does not count against the limit); only truly new assets are counted. If the total would still exceed 100 assets after adding them, the app immediately asks you to upgrade and leaves no unregistered output behind.
- GIF Compression: Shown only when one GIF asset is selected. Adjust output resolution, maximum frame rate, palette color count, and dithering, or start with High Quality, Balanced, or Smaller File presets. After focusing a comparison mode or palette preset, use the arrow keys, Home, or End to switch. It creates a new GIF by default; select Overwrite source GIF only when you intentionally want to update the original. It is available in every release channel.
- Auto Slice: Placed after Tinify; same entry as the right-click Auto Slice menu item. Shown only for PNG, JPG, JPEG, WebP, and BMP assets that are not Sprites aggregates. See Atlas & Sprites.
- Quick Cutout: Select one or more PNG, JPG/JPEG, WebP, or BMP images and open it from the context menu. The dialog fills the app window: manage the batch on the left, inspect the current result in the center, and adjust the shared background color, algorithm, tolerance, feather, or effect settings below the title on the right. The options match the Background Removal section in Auto Slice, and changing a setting refreshes every image preview.
- Close it with the top-right close button or Esc. Closing is temporarily disabled while the batch results are being saved.
- The first image in the left list receives keyboard focus when the dialog opens, so you can immediately press ↑ / ↓ to move to the previous or next image.
- After focusing a background or comparison-mode button, use the arrow keys, Home, or End to switch. Hold Original also supports Space and Enter.
- The current filename is centered in the toolbar above the preview, while comparison modes align to the toolbar’s far right. Transparent, white, and black backdrop buttons stay at the top-left of the entire preview, while RGB / Red / Green / Blue / Alpha channel buttons stay at the top-right. Channel selection applies to both the original and cutout result. The Hold Original button stays centered along the bottom of the entire preview; it switches immediately and restores the result immediately on release. In Side by Side mode, the selected backdrop fills only each image rectangle; the surrounding area uses a fixed theme surface so transparent image boundaries remain visible.
- Centered controls below the preview provide zoom, fit, and 1:1 display. In Split mode, only the center handle moves the divider; clicking elsewhere on the image does not reposition it.
- The filename suffix, Overwrite Originals, and Add Suffix actions are grouped at the bottom-right, matching the Old vs. New Image Comparison dialog.
- Overwrite Originals replaces PNG files in place. JPG/JPEG, WebP, and BMP originals are kept, and a same-base-name PNG is created beside each source; for example,
hero.jpgcreateshero.png. The newly created PNG is automatically indexed as a standalone image asset, retaining tags and descriptions. Rescanning the library will also automatically reconcile and update file extensions if needed. - Add Suffix always creates PNG output. The default suffix is
.transparent, sohero.webpcreateshero.transparent.png. - Existing output files are reported before processing so you can overwrite, keep both, or skip them. If two selected sources would create exactly the same target, remove one of them from the list first.
Steam & Steam Demo Release
Steam full version and Steam Demo only support local Squoosh compression. Microsoft Store and App Store builds can choose Squoosh or TinyPNG in Settings.

Old vs. New Image Comparison Dialog
After processing an image with Tinify smart compression or AI Smart Matting, Sharp Stock opens the full-screen Old vs. New Image Comparison dialog. Preview the results carefully before deciding how to save, to avoid mistakes. Close it with the top-right close button or Esc; closing is temporarily disabled while results are being saved.
- List & Selection: All processed images are listed on the left. The first image receives focus when the dialog opens, so you can immediately use ↑ / ↓ to move between images and Home / End to jump to the first or last item. Click to switch the preview, or click the × on an image’s top-right to remove it from this batch (no file is generated for it).
- Compare Preview: The current filename is centered in the toolbar above the preview, with comparison modes on the right. The middle area supports:
- Old vs. New: Provides Split, Hold Original, and Side by Side modes. Drag the center handle in the default mode to inspect the same position, hold the button in Hold Original mode to temporarily show the source, or display both images at once in Side by Side mode.
- Channel Preview: Switch between RGB / Red / Green / Blue / Alpha at the preview’s top-right (Alpha is available only for images with transparency). The selected channel applies to both the original and processed images.
- Background Toggle: Use the buttons at the preview’s top-left to switch the image area between transparent checkerboard / black / white. The surrounding area keeps a fixed theme surface, making the actual image boundary easy to see.
- Zoom & Pan: Use the centered controls below the preview to zoom, fit, or show at 1:1. Drag to pan after zooming. Side by Side fits the full width of both images, so tall strips are not cropped or scaled down a second time.
- Split Handle: Only the circular center handle shows the horizontal resize cursor and moves the divider; clicking elsewhere in the image does not change its position.
- Keyboard: After focusing a background or channel button, use the arrow keys, Home, or End to switch. Hold Original supports Space and Enter.
- Name Suffix: You can edit the output file suffix on the right (defaults to
.tinifiedfor Tinify and-mattingfor AI matting). The suffix only affects the new filenames created by Save All. - Save or Replace:
- Save All: Creates a new file with the suffix for each image (for example,
a.tinified.png) and keeps the original. - Replace All: Overwrites the original image files with the processed results. The originals cannot be recovered, so confirm the comparison before clicking.
- After saving or replacing, the dialog closes automatically and the related assets refresh their metadata and thumbnails immediately.
- Save All: Creates a new file with the suffix for each image (for example,
WARNING
Replace All directly overwrites the original files and cannot be undone. Confirm the processed result in the Old vs. New comparison before using it.
2. Core Functional Features
- Efficient Local Processing: Operations are performed directly on physical disk files, resulting in extremely fast processing speeds.
- Saving Strategy:
- Overwrite Mode: Rotation and flip operations directly modify the original file.
- Derivation Mode: Resizing and Tinify compression generate new files with a suffix by default. GIF Compression also creates a new file by default and updates the original only when Overwrite source GIF is selected.
- Sync Preview Refresh: Once processing is complete, the preview in the detail panel will update immediately for effect confirmation.
3. Operation Guide
Resizing Images
- Click the "Resize" button to open the configuration dialog.
- Enter the target width; if "Aspect Ratio Lock" is on, the height will adjust automatically.
- Confirm the naming format for the new file.
- Click "Apply" to generate the new sized asset.
If the original dimensions are missing, Sharp Stock tries to read them again when the dialog opens. If successful, the filename keeps the original_widthxheight format. If the dimensions are still unavailable, selecting a preset such as 2048 with aspect ratio lock enabled sets the width to 2048 and shows “Auto” for the height. The filename becomes original_2048.bmp, keeping the original extension. You can also enter either dimension manually and let the other adjust proportionally. Turn off aspect ratio lock to enter both dimensions. Images that cannot be decoded may still fail to resize.
For BMP files imported earlier without dimensions, reopen Resize to read their dimensions again. To also update their stored dimensions and fill missing thumbnails, run a manual scan in Settings. Startup scanning continues to skip assets previously marked as failed.
BMP processing supports files up to 256 MiB, input and output images up to 64 million pixels, and sides up to 32768 pixels. Generated BMP files use 32-bit pixels and may be larger than the original palette-based images. Special color profiles and additional source metadata are not guaranteed to be retained.
TIP
The new filename keeps the .gif extension by default when resizing an animated GIF. Do not change the extension if you want the generated image to remain animated.

Compressing a GIF Animation
- Select one GIF and click GIF Compression in the right-side Image Edit section, or right-click the asset and choose Compress GIF. The command is hidden for multiple selections.
- Choose High Quality, Balanced, or Smaller File, or manually adjust dimensions, maximum frame rate, and palette colors. Use the up and down buttons beside a dimension to adjust it one pixel at a time. Aspect ratio is locked by default to prevent distortion.
- For more control over gradients, expand Advanced and choose a dithering method. Fewer colors and lower frame rate or resolution usually produce a smaller file, at the cost of detail or smoothness.
- After a setting changes, Sharp Stock performs a new encoding in the background and shows the result on a large comparison canvas. The filename is centered above the preview and comparison modes are on the right. Split is the default: drag the center handle to compare the same area of the original and compressed GIF. You can also choose Hold Original or Side by Side. The semitransparent Hold Original button appears inside the preview at the bottom center only in Hold Original mode and becomes fully visible on hover. Both GIFs keep playing; hold the button to view the original at its current playback position, then release it to restore the compressed preview immediately. The estimating notice stays above both comparison layers and is not clipped by the split. Its background, text, and progress bar follow the current light or dark theme. Click Replay to start both animations together as closely as possible. Rapid changes are briefly debounced; the interface stays responsive, and you can cancel or close the dialog.
- Enter the new name in New filename. The
.gifextension is fixed outside the input and cannot be changed. Click Generate GIF to create the file. If it already exists, choose whether to replace it or automatically rename the new file to keep both. - To update the current GIF directly, select Overwrite source GIF. The new filename field becomes disabled and generation replaces the original file. Confirm the preview before using this option.
NOTE
The estimated size comes from a completed encoding with the current settings, so it is closer to the final result than a formula-based estimate. Large animations with many frames take longer to estimate.
Resize multiple images
- Select at least two PNG, JPG/JPEG or WebP images and choose Batch Resize.. from the context menu. The entry appears only when every selected item is a regular image in these formats. Mixing in audio, models, GIF, BMP, other formats, or Spine/Sprites aggregate assets hides the entry.
- The file list on the left shows original and target resolutions in separate columns, along with output names and statuses (indicated by green checkmark, error warning, or neutral dash icons). Long paths and statuses remain visible on one line; use the horizontal scrollbar at the bottom of the list to inspect the complete text. The right panel has the title at the top, settings below, and action buttons at the bottom. When the window is resized, the right panel keeps a fixed width, the left list expands or contracts, and both panels follow the window height. Files are checked when the dialog opens. Animated WebP and other multi-frame images, or files whose content does not match their extension, are skipped. Missing or damaged files are reported as failures. Opening the dialog and checking results do not modify source images.
- Choose a resize mode:
- Fit within maximum dimensions: defaults to 1024 × 1024. Keeps the whole image without cropping or padding. For example, 2048 × 1024 becomes 1024 × 512.
- Scale by percentage: 50% halves the dimensions; 200% doubles them.
- Set width / Set height: sets one dimension and calculates the other using each image's own aspect ratio.
- Exact resolution: sets every image to the specified width and height. For example, 512 × 512 produces a 512 × 512 output from both landscape and portrait images. Different aspect ratios will stretch, with no cropping or padding. Smaller images are enlarged too.
- Only shrink, never enlarge is enabled by default in the other modes. Turn it off to enlarge images. This option is hidden in Exact resolution, which always uses the specified width and height. Images whose size would stay unchanged are skipped. Dimensions are rounded to pixels, with a minimum of 1 px. Each side is limited to 16,384 px, the output to about 67 million pixels, and the percentage to 800%. Very large source images may also be rejected.
- Use Smooth for illustrations, photos and ordinary UI images. Use Pixel art (nearest neighbour) for pixel art, preferably with integer enlargement factors.
- Choose how to handle existing output files:
- Keep both (rename) is the default. If
hero_512x256.pngexists, a name such ashero_512x256-1.pngis used. - Skip leaves existing outputs untouched and skips those items.
- Overwrite existing output replaces listed existing outputs. After checking the results, you must also select the confirmation checkbox before starting. This cannot be undone. Selected source files cannot be overwrite targets.
- Keep both (rename) is the default. If
- After changing dimension settings on the right, a notice above the left list asks you to refresh. The previous results remain visible. Click Refresh results at the bottom right; resizing stays disabled until the refresh succeeds. Changing only resampling or conflict handling updates the inspection automatically without requiring a manual refresh. Conflict handling may still change output names, skipped items or overwrite confirmation. Review the sizes, names and statuses, then click Start resize. Outputs keep their original extension and are saved beside each source as
originalName_actualWidthxactualHeight.extension. Images from different folders remain in their respective folders. - The dialog shows the current file and progress. Clicking Cancel, clicking the close button or pressing Esc stops subsequent images after the current encoding or commit finishes. Completed outputs are retained. The final report lists completed, skipped, failed and cancelled items. Retry failed items checks only failed items again, without regenerating successful outputs.
NOTE
Batch Resize runs locally without an API Key and is available on every distribution channel. Lite / Demo checks the number of new assets before processing and again when saving against its 100-asset limit. Overwriting an already registered output does not add an asset. Reduce the selection or upgrade if the limit is exceeded.
WARNING
Images are re-encoded: outputs use sRGB, PNG/WebP use 8-bit output, JPEG uses quality 90, and WebP uses lossless encoding. PNG/WebP transparency is retained. Resizing changes pixels and is not lossless editing. This tool is unsuitable when high bit depth or special colour information must be preserved. Check a few copies first.
New images do not automatically update texture references or coordinates in Spine, Atlas or Sprites resources. Before overwriting an existing output, check whether other resources depend on it.
Wait for completion or cancellation before switching libraries. Files changed by another program after inspection are reported as failures and must be checked again. Plans expire after 30 minutes. Large result lists show 100 items per page; a batch accepts at most 10,000 selected items.
4. Notes
- Image Quality Note: Rotation and flipping are completely lossless for PNG format; for JPG format, frequent repeated rotations may cause minimal quality changes.
- Service Configuration: In Settings → Image Processing, choose the Tinify mode. TinyPNG requires an API token; Squoosh needs no configuration.
- Asset Support Scope: This tool is specifically for original image assets. For Spine animations or aggregated Sprites assets, editing must be done on their associated underlying images.