← Back to blog

How to Compress an Image to 100 KB on Windows Without Uploading It

By LocalFlux Editorial Team

WindowsTips

An application form, client portal, marketplace, or email system may accept an image only when it is below a fixed file-size limit. That creates a more specific problem than simply making the picture “smaller”: the result must fit under the limit while retaining as much useful detail as possible.

You can repeatedly adjust a quality slider, save another copy, and check the file size. Or you can use a target-size workflow that searches for the best result below the ceiling on your Windows PC.

For this walkthrough, we compressed one generated 3000 × 2000 JPEG with LocalFlux 1.0.7.0. The source was 4,281,079 bytes. The two tested results were:

TargetActual outputDimensionsReduction
Under 100 KB101,191 bytes (98.8 KB in the app)1675 × 111797.64%
Under 500 KB497,544 bytes (485.9 KB in the app)3000 × 200088.38%

Both outputs stayed below their requested ceilings, and the original remained unchanged.

Measured example, not a universal result: The size and dimensions LocalFlux can retain depend on the format, content, noise, existing compression, and requested limit. A different image may need more or less resizing, or may be unable to reach an extremely small target acceptably.

Get LocalFlux from the Microsoft Store

The short answer

To compress a supported image to 100 KB with LocalFlux:

  1. Open LocalFlux and choose Compress.
  2. Add a JPG, PNG, or WebP image.
  3. Open Options and select Target size.
  4. Choose Under 100 KB. You can instead choose Under 500 KB or a custom maximum.
  5. Select Compress.
  6. Review the reported output size, dimensions, and visual quality before submitting the copy.

LocalFlux writes a new _compressed file and leaves the source untouched.

Why an exact size limit is harder than a quality setting

Image encoders normally expose settings such as quality, compression effort, dimensions, or format. Those controls affect file size, but they do not promise a particular number of bytes.

Two JPEGs saved at the same quality can differ substantially because their pixels differ. A smooth sky is relatively predictable; hair, foliage, fabric, text, grain, and sensor noise can require more data. A PNG illustration with a limited palette behaves differently from a detailed photograph. WebP can use either lossy or lossless compression.

The official PNG specification defines PNG as a lossless format with optional alpha transparency. Google’s WebP documentation describes both lossy and lossless modes as well as transparency. Those format differences are why one universal “quality 80 equals 100 KB” rule cannot work reliably.

A target-size workflow turns the question around. Instead of asking, “What size will quality 80 produce?”, it asks, “What is the best candidate that fits below this size?”

Before you start

This article uses a controlled, reproducible setup rather than a private photo:

ItemTested value
AppLocalFlux 1.0.7.0 local x64 test build
WindowsWindows 11 x64, build 26200
SourceLocally generated synthetic JPEG; no personal content
Source dimensions3000 × 2000
Source size4,281,079 bytes (4.1 MB in LocalFlux)
WorkflowCompress → Target size → Under 100 KB / Under 500 KB
DestinationSame folder as source

The fixture deliberately contains detailed color variation. It is useful for demonstrating a target search, but it is not representative of every camera photo, illustration, screenshot, or already-optimized download.

How to compress an image to 100 KB with LocalFlux

1. Add the image and choose Compress

Open LocalFlux, switch to Compress, and add the image. Drag and drop works, or you can use Add files.

LocalFlux in Compress mode with a 4.1 MB synthetic JPEG ready and Options open.

The source is ready in Compress mode. Every visible path is inside the neutral C:\tmp\LocalFluxBlog capture folder.

Compress mode keeps the supported source format rather than turning the file into an unrelated type. In this test, a JPG produced another JPG.

2. Choose Target size

Open Options, select Target size, and choose Under 100 KB from the outcome menu.

LocalFlux Target size options with Under 100 KB selected for a 3000 by 2000 JPEG.

Under 100 KB searches for the highest-quality candidate at or below the target for each file.

In this LocalFlux version, target-size compression is available for supported JPG, PNG, and static WebP images. Other compression routes may offer presets or verified lossless optimization instead. The available controls are intentionally format-aware.

Select Compress 1 file. LocalFlux evaluates candidates locally. The queue shows an active conversion while the app searches.

LocalFlux actively searching for an image result under 100 KB.

The target search is running on the PC. The source remains in place while a temporary candidate is evaluated.

Current LocalFlux target-size searches make a bounded number of encoding attempts. They can also reduce dimensions when quality changes alone are insufficient. The image is never enlarged, its aspect ratio is preserved, and the search will not shrink below a 640-pixel long edge.

If the limit cannot be reached within that boundary, LocalFlux fails the job instead of presenting an oversized file as a successful result.

4. Review the completed result

The app reports the measured source size, output size, percentage saved, final dimensions, and target usage.

Completed LocalFlux compression showing a 4.1 MB JPEG reduced to 98.8 KB, 98 percent smaller.

The 100 KB test completed at 98.8 KB. The selection details show 98.8 KB of the 100 KB target.

The exact file was 101,191 bytes, below the 102,400-byte ceiling used by this outcome. The search reduced the dimensions from 3000 × 2000 to 1675 × 1117 while preserving the image’s approximate 3:2 aspect ratio.

Open the result and inspect it at the size at which it will actually be used. Pay particular attention to:

Passing a byte limit does not automatically mean the result is suitable for its purpose.

What changes with a 500 KB target?

A less aggressive ceiling gives the encoder more room. We repeated the same workflow with the same source copy and selected Under 500 KB.

LocalFlux Target size options with Under 500 KB selected.

The result was 497,544 bytes, shown as 485.9 KB in the app. It remained at the full 3000 × 2000 dimensions.

Completed LocalFlux compression showing a 4.1 MB JPEG reduced to 485.9 KB, 88 percent smaller.

The 500 KB result retained the source dimensions because the requested ceiling could be met without downscaling this fixture.

This illustrates an important point: the target is a maximum, not a command to make every output exactly the same size. LocalFlux tries to retain the best candidate below the ceiling; it does not add filler bytes to reach the number exactly.

Inspect the actual test files

The samples used for this article are available for inspection:

Under 100 KB outputUnder 500 KB output
Actual synthetic JPEG produced by LocalFlux below the 100 KB target.Actual synthetic JPEG produced by LocalFlux below the 500 KB target.

The 100 KB image has fewer pixels and a tighter encoding budget. The 500 KB image retains the full dimensions and more encoded detail. Browser scaling can conceal differences, so download the files and compare them at 100% when the decision matters.

Watch the workflow

Video transcript: A 4.1 MB synthetic JPG is ready in Compress mode. Target size is changed to Under 100 KB. LocalFlux searches locally and reports a completed 98.8 KB result. The same source is then shown with Under 500 KB selected and a completed 485.9 KB result. The video is an edited sequence of real ready, active, and completed app states; it is not presented as a conversion-speed benchmark.

100 KB, 500 KB, or a custom limit?

Choose the limit required by the destination, then leave a little safety margin when the receiving system is unclear about units or may modify the upload.

Do not choose 100 KB merely because it sounds efficient. If the destination accepts 500 KB and the image contains important detail, the larger budget may be the better result.

Why resizing often matters more than another quality step

A 3000 × 2000 image contains six million pixels. If the destination displays it as a small profile image, sending all six million may provide little practical benefit.

Reducing dimensions gives the encoder fewer pixels to describe. That can be more effective than forcing an already-large image through an extremely low quality setting. The trade-off is that discarded resolution cannot be recovered from the derivative.

Microsoft’s PowerToys Image Resizer is a useful Windows alternative when you know the required pixel dimensions. It supports Fit, Fill, and Stretch modes, custom dimensions, a shrink-only option, and JPEG quality. That is a dimension-led workflow. A target-size search is preferable when the destination specifies bytes rather than width and height.

JPG, PNG, or WebP: which should you compress?

JPG

JPG is usually a practical choice for photographs without transparency. Lossy compression can produce major savings, but aggressive settings may create softness, ringing, or block artifacts around edges.

PNG

PNG is lossless and supports transparency. It is often appropriate for logos, interface captures, diagrams, and graphics with sharp edges. A detailed photographic PNG may be difficult to push under a tiny ceiling while preserving both its format and useful dimensions.

WebP

WebP supports lossy and lossless compression as well as transparency. It can be efficient for web delivery, but the receiving service must accept WebP. In LocalFlux Compress mode, the format remains the same; use an explicit conversion workflow if the destination requires another format.

What does not reliably solve an exact limit?

Putting the image in a ZIP file

JPEG, PNG, and WebP data is already compressed. A ZIP archive may save little, and many upload forms require an image rather than an archive.

Taking a screenshot

A screenshot creates a new image with screen-sized dimensions, but it is an imprecise conversion method. It can alter scaling, color, transparency, metadata, and framing while still missing the required byte limit.

Renaming the extension

Changing .png to .jpg does not convert or compress the file. It only gives the existing bytes a misleading name.

Assuming every “compress” button removes metadata

Compression and metadata removal are separate outcomes. If privacy is the goal, use an explicit safer-sharing workflow and verify the result. See How to Remove Metadata From Photos on Windows 11 Before Sharing.

A practical submission checklist

Before uploading the finished copy:

Frequently asked questions

Is 100 KB exactly 100,000 bytes?

Not always. File-size labels are used inconsistently across software and websites. In the LocalFlux outcome tested here, Under 100 KB used a 102,400-byte ceiling. If a portal documents 100,000 bytes explicitly, choose a custom target below that number and leave a margin.

Will LocalFlux always make the file exactly 100 KB?

No. The target is a maximum. The best verified candidate may be smaller, and an already-small source may not need re-encoding.

Why did my image dimensions change?

The encoder could not reach the requested ceiling at acceptable candidates using the original dimensions, so the target search reduced them while preserving aspect ratio. LocalFlux does not enlarge the source and does not go below its 640-pixel long-edge boundary.

Can I compress several images at once?

Yes. Add compatible JPG, PNG, or WebP images, choose one target, and start the batch. Each file is evaluated independently because equally sized sources can compress very differently. Test one representative result before processing an important large batch.

Does target-size compression preserve the original?

It did in both tests here. LocalFlux created _compressed JPG copies in the source folders. Keep independent backups of irreplaceable images regardless of the tool you use.

What happens if 100 KB is impossible?

LocalFlux can lower quality and then reduce dimensions within its bounded search. If it still cannot reach the target without crossing the minimum dimension boundary, it reports a failure instead of publishing an oversized output as successful.

Is the 100 KB result suitable for printing?

Usually not as a master. A small upload derivative may be adequate for a form, thumbnail, or on-screen preview, but printing needs depend on physical size, viewing distance, resolution, and content. Keep the full-resolution original.

Meet the limit without sending the image away

An exact upload ceiling calls for an outcome-led workflow. Add the image, choose the maximum size, let the bounded search run locally, then inspect the resulting copy.

In this controlled test, LocalFlux reduced a 4.1 MB JPEG to 98.8 KB for the strict target and 485.9 KB for the more generous target. The tighter result required fewer pixels; the 500 KB result retained the original 3000 × 2000 dimensions. Both stayed below their limits, and neither replaced the source.

Compress images to a chosen size locally with LocalFlux