8000 GitHub - Peerapat-J/ReSize: Utility tool for screenshots picture converter. · GitHub
[go: up one dir, main page]

Skip to content
Peerapat-JPublic

About

Utility tool for screenshots picture converter.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

ReSize app icon

ReSize

Screenshot cropping and resizing for Mac

Choose a frame. Check the result. Export for the App Store.

Deployment target: macOS 14 or later Written in Swift SwiftUI interface PNG and JPEG input and output Images processed locally on your Mac No external app dependencies

Download source ZIP   Report an issue or suggest a feature

Features · Quick Start · Framing Modes · Build from Source · Development


ReSize is a native macOS utility for preparing PNG and JPEG screenshots for the Mac App Store. Crop at the original pixel scale, crop and resize a selected area, or fit the whole image into your chosen output size.

Use built-in Mac screenshot presets or custom dimensions, preview the encoded result, and export one image or a batch. Processing stays on your Mac, and exports leave your originals unchanged.

Features

  • Three framing modes — Crop Only, Crop & Resize, and Fit.
  • Mac screenshot presets — Choose a built-in 16:10 size or enter custom dimensions.
  • Precise crop controls — Drag the frame, center or reset it, and nudge it with the arrow keys.
  • Custom aspect ratios — Lock dimensions together or choose 16:10, 16:9, 4:3, or 1:1.
  • Source and Output views — Inspect the original and the encoded export preview, including JPEG compression.
  • Pixel-level inspection — Fit to Window or view at 50%, 100%, and 200%; display zoom does not change the export.
  • Batch workflow — Apply common settings to selected images while keeping each image's crop position.
  • Flexible export — Export the current image, selected images, or all images.
  • PNG and JPEG output — Adjust JPEG quality from 10–100% and choose a background color.
  • Originals preserved — Exported copies use numbered names when a filename is already taken.

Quick start

  1. Build and open ReSize.
  2. Click Open Images… (⌘O), drag PNG/JPEG files into the window, or open them from Finder.
  3. Choose a Mac preset or Custom, then select a framing mode.
  4. Adjust the crop in Source view. In Crop & Resize, drag a corner or use the crop-area slider to change its size.
  5. Switch to Output to check the encoded result and estimated file size.
  6. Click Export… (⌘E) or Export All (⌘⇧E). The Export All menu also offers export of selected images when multiple images are selected.

To reuse settings, select images with ⌘-click or Shift-click, then choose Apply Settings to Selected. Size, mode, format, and background are shared; crop positions stay individual.

Keyboard controls

Action Shortcut
Open images ⌘O
Export current image ⌘E
Export all images ⌘⇧E
Nudge crop frame Arrow keys, 1 source pixel at a time
Move crop frame faster Shift + arrow keys, 10 source pixels at a time

Click the crop canvas before using the arrow keys.

Framing modes

Mode What it does Best for
Crop Only — default Moves a fixed-size frame at the original pixel scale, without resampling. The source must be large enough for the chosen output size. Keeping UI and text detail while trimming the edges.
Crop & Resize Resizes the selected crop area to the output dimensions while preserving its proportions. Adjusting the framing and output size together.
Fit Scales the whole image proportionally to fit inside the output dimensions, adding background space when needed. Keeping all of the original image visible.

Mac screenshot presets

All built-in presets use a 16:10 aspect ratio.

Width Height
1280 px 800 px
1440 px 900 px
2560 px 1600 px
2880 px 1800 px

Choose Custom for other dimensions. Before submitting, check Apple's current screenshot specifications.

Export details

  • Input and output: PNG and JPEG.
  • Color: Opaque, 8-bit sRGB output in every mode. The background color fills transparent areas and empty space in Fit mode.
  • Compression: PNG uses lossless compression; JPEG quality is adjustable from 10–100%.
  • Preview: Output view decodes the encoded result so JPEG quality changes are visible before export.
  • Size limits: Both imported images and output dimensions are limited to 60 megapixels and 16,384 pixels per side.
  • Existing files: Numbered filenames avoid replacing existing files, and source files cannot be overwritten.
  • Changed sources: If an opened source file changes on disk, remove it and open it again before exporting.
  • Cancellation: Files already exported are kept; remaining work is skipped.

Crop Only + PNG avoids resampling and uses lossless compression. Color-profile conversion, bit-depth conversion, and filling transparent areas can still change pixel values. Exported files are not guaranteed to be byte-identical to their sources.

Local processing

ReSize reads the image files you open and processes them locally using Apple's image frameworks. Images are not uploaded for conversion. Preview and export use the same processing pipeline.

Requirements

  • macOS 14+ deployment target
  • Xcode 16+ for building the app; a Swift 6 toolchain for the Swift package tests
  • No external app dependencies

The project's recorded development validation used macOS 26.6.2 and Xcode 26.6. Runtime compatibility on macOS 14 still needs validation; the deployment target alone does not confirm that testing.

Build from source

Clone the repository, then run the build script on your Mac:

git clone https://github.com/Peerapat-J/ReSize.git
cd ReSize
./scripts/build.sh
open build/DerivedData/Build/Products/Debug/ReSize.app

Or open ReSize.xcodeproj in Xcode, select the ReSize scheme, and run it.

The current configuration uses ad-hoc signing for local development. App Sandbox, notarization, and distribution setup are not configured.

Tech stack

Layer Technology
Language Swift
Interface SwiftUI and AppKit
Image processing Core Graphics and Image I/O
File types Uniform Type Identifiers
Core tests Swift Package Manager and XCTest
App build Xcode

Development

Run the existing core tests and development checks on macOS:

./scripts/test.sh
swiftlint lint --no-cache
git diff --check

The lint command requires SwiftLint to be installed.

Generate sample images for manual GUI testing:

swift scripts/make-fixtures.swift

The fixtures are written to /private/tmp/resize-fixtures.

  • Architecture — Image processing, preview behavior, memory use, and export handling.
  • Manual QA — GUI checks, fixtures, and expected results.
  • Project scope — Initial release scope and implementation plan.

Current scope

ReSize currently focuses on still-image preparation for Mac screenshots. Sessions are not saved across app restarts. Video App Previews, HEIC/TIFF/WebP input, iPhone/iPad presets, text overlays, and device frames are not supported.

About

Utility tool for screenshots picture converter.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

0