Fix a photo without it ever leaving the phone: inside the Googly Player photo editor

Live filter previews on your own photo, an Auto button that admits when there is nothing to fix, a paintable blur mask, and a save that never touches the original.

Binary Buddies · 5 min read · 0 views
Prints drying over an evening streetA line of photo prints sways above a quiet street at sunset, with rooftops, lit windows, a street lamp and a parked car below.

A photo in your gallery is almost right. It is a little dark, the colour is off, or there is a licence plate in the corner you would rather not post. Fixing that should not mean exporting the file to another app, uploading it to a service, or gambling with the only copy you have.

It also should not mean guessing. An adjustment you cannot compare against the original, an auto button that changes a well-exposed picture just to look busy, a text label that is stuck once you have placed it: each of these turns a quick fix into a chore, and each is the kind of thing that makes people give up and post the photo as it is.

Googly Player is our Android app for the videos, music and photos already on your phone, and we built a photo editor into it for exactly this work. It opens on the photos in your own library, keeps every change reversible until you save, writes the result as a new copy in your gallery, and does all of it on the device.

Key takeaways

  • Twenty filter presets preview as live thumbnails of your own photo, and a strength slider dials any of them down to subtle.
  • Auto reads the photo's luminance histogram and, when exposure is already fine, says “Already well balanced” instead of changing it.
  • Selective blur lets you paint a mask over a face, a licence plate or sensitive text and blur only that region.
  • Saving writes a new file to your gallery; undo, redo and hold-to-compare cover the whole edit history before that.
  • Every permission prompt states that nothing is uploaded and everything stays on the device.

Twenty filters, previewed on the photo you are editing

The filter strip shows twenty presets, and every thumbnail is your actual photo rendered with that preset rather than a sample image. The presets are Original, Vivid, Warm, Cool, Mono, Noir, Sepia, Fade, Vintage, Cinematic, Film, Golden, Dramatic, Punch, Lomo, Bleach, Moody, Blush, Mint and Retro. To narrow the list, you can browse by category: All, Portrait, Film, B&W and Bold.

A preset at full strength is rarely the finished look, so each one comes with a strength slider that takes it from full down to subtle. That turns Cinematic or Dramatic from a statement into a hint, which is usually what an everyday photo needs.

Under the hood, a filter is applied as a ColorMatrix colour filter on the preview. Switching presets is instant because no bitmap is copied while you browse; the matrix is baked into the pixels only when you save. That split is what keeps the strip responsive while it shows twenty versions of a full photo.

20filter presets
5filter categories to browse
8manual adjustment controls
7pixel effects, including selective blur
Filter preview and save pipelineYour photo gets a colour matrix for an instant preview without a bitmap copy; only when Save is tapped is the filter baked into pixels and written as a new copy.Preview now, bake at saveYour photoColour matrix appliedInstant previewNo bitmap copySave tappedFilter baked into pixelsNew copy
The filter stays a cheap colour matrix while you browse and becomes real pixels only on the way to a new file.

Eight adjustments, and an Auto button that admits when it has nothing to do

When a preset is not the right starting point, the Adjust panel gives direct control:

  • Brightness and Contrast
  • Saturation, Warmth and Tint
  • Highlights, for recovering blown-out areas
  • Shadows, for lifting dark areas
  • Vibrance, which is saturation-aware, so colours that are already saturated do not blow out

Auto is a one-tap auto-levels. It builds a luminance histogram of the photo, finds the black and white percentile points, and computes the brightness and contrast correction that maps them properly. If the photo is already well exposed, it says “Already well balanced” instead of nudging sliders to look as though it did something. We think that honesty matters: a button that always changes the image teaches you to stop trusting it.

Reset returns the photo to the untouched original at any point, so experimenting with the sliders costs nothing.

How Auto decidesAuto builds a luminance histogram, finds the black and white points, then either applies a brightness and contrast fix or reports that the photo is already well balanced.How Auto decidesBuild luminance histogramFind black and white pointsNeeds correctionWell exposedApply brightness/contrast fixSays: Already well balanced
Auto only corrects when the histogram shows something to correct; otherwise it tells you the photo is fine.
City lights in soft focusOut-of-focus city lights glow as large soft circles above a dusk skyline.

Effects that work on the pixels themselves

Filters and effects are built differently on purpose. A filter is a colour transform, which is why it can preview instantly. Effects change the structure of the image, so they are real pixel passes rather than colour matrices: Blur, Soft focus, Glow, Sharpen, Grain and Vignette, plus the selective blur covered in the next section.

The practical upshot is that you can combine the two. Pick a Film preset, dial its strength down, then add Grain and a Vignette; or take a Portrait-category look and soften it with Soft focus or Glow. Sharpen is there for the opposite job, when a slightly soft phone photo needs its edges back.

Filters

A colour transform applied to the preview.

  • Applied as a ColorMatrix colour filter
  • Instant, with no bitmap copy
  • Baked in only at save time
  • Strength slider from full to subtle

Effects

Real pixel passes over the image.

  • Blur, Soft focus and Glow
  • Sharpen, Grain and Vignette
  • Selective blur with a painted mask
  • Adjustable mask blur strength

Selective blur for the parts you should not share

A great deal of photo editing on a phone is not about looks at all. It is about getting a picture ready to send: a stranger's face in the background, a licence plate on a parked car, an address or account number on a document in the frame. Selective blur handles that directly. You paint a mask over part of the photo, and only that region is blurred.

The mask blur strength is adjustable, so the same tool covers both jobs: a gentle blur for a distracting background, and a heavy one for text that must not be readable. Because it is part of the same editor, a redacted copy can also take a filter or an adjustment in the same session before you save.

Selective blur before and afterOn the left a mask is painted over a car licence plate; on the right only that masked region is blurred while the rest of the photo is unchanged.Selective blurMask painted over plateOnly that region blurred
The blur stays inside the region you painted; the car, road and sky on the right are untouched.

Markup you can still change after you place it

The Draw tool covers the annotations people actually add to a photo before sending it:

  • A freehand brush with a colour palette and a size slider
  • Text labels anywhere on the photo; tap an existing label to re-edit it
  • Emoji stickers

Every overlay element can be moved, resized and deleted after it is placed, so a misplaced arrow or a typo in a label is a tap away from fixed rather than a reason to start over.

The way we store these elements is what makes that work. Each one is kept normalised, relative to the photo rather than to the screen, and immutable, so a change creates a new version instead of mutating the old one. Immutability is what lets every markup step join the undo and redo history. Normalisation is what lets a label placed on the small on-screen preview land in exactly the right place, at the right size, on the full-resolution save.

One overlay at two sizesA text label and brush stroke on a small preview appear in the same relative position on the full-resolution save, because elements are stored normalised and immutable.One overlay, two sizesSmall previewFull-resolution saveStored normalised, immutable
Because overlays are stored relative to the photo, the label you place on the preview lands in the same spot on the saved file.

Undo, compare, and a save that never replaces your original

The editor toolbar is built around one idea: nothing you do is final until you choose to save, and even then the photo you started with is left alone. Undo and redo run over the full edit history, across filters, adjustments, effects and markup alike. Hold to compare shows the untouched original for as long as you press, and releasing returns you to your edit, which is the quickest way to tell whether a change is an improvement or just a change.

Save writes a new file. While it works you see a “Saving…” state, and when it finishes you get “Saved a copy to your gallery”. Because it is a copy, a heavy edit or a redaction never destroys the original picture.

Backing out is protected too. If you leave the editor with unsaved edits, it asks “Discard changes? Your edits haven't been saved.” A stray back gesture after ten minutes of careful markup does not cost you the work.

One look across a whole selection

Sometimes the job is not one photo but a set: a trip, an event, a product shoot that should all share the same look. Batch filter applies a single preset to every selected photo at once and saves filtered copies, without opening each one in the editor.

  1. Select the photos

    In the photos section, multi-select every picture you want to change.

  2. Pick one preset

    From the multi-select action bar, choose any of the twenty filter presets.

  3. Let it apply

    An “Applying filter…” progress state shows while the preset runs across the selection.

  4. Find the copies

    Each photo is saved as a filtered copy, so the originals stay as they were.

What it needs to run

Googly Player runs on Android and asks for photo access in the form each Android version expects. On Android 13 and later it requests READ_MEDIA_IMAGES, alongside READ_MEDIA_VIDEO and READ_MEDIA_AUDIO for its video and music sections. On older devices it uses READ_EXTERNAL_STORAGE, capped at API 32.

On Android 14 and later we also declare READ_MEDIA_VISUAL_USER_SELECTED, and this one is required rather than optional. Without it, the system runs the app in a compatibility mode where a partial grant is revoked as soon as the app goes to the background, so your library would silently empty between launches. With it, a partial grant persists and the app can see it, tell you “You've shared only some items”, and offer “Allow all”.

Photo access by Android versionBefore Android 13 the app uses READ_EXTERNAL_STORAGE; on Android 13 and later READ_MEDIA_IMAGES; on Android 14 and later READ_MEDIA_VISUAL_USER_SELECTED for persistent partial access. Everything stays on the device.Photo access by Android versionBefore Android 13READ_EXTERNAL_STORAGEAndroid 13 and laterREAD_MEDIA_IMAGESAndroid 14+ partial accessREAD_MEDIA_VISUAL_USER_SELECTEDEverything stays on this device
Each Android version gets the permission it expects, and on Android 14 the partial-access declaration keeps your selection from vanishing.

Every permission prompt is written in plain language and says “Nothing is uploaded — everything stays on this device.” The editor, the filters and the batch tool all work on the photos already in your gallery and write their results back there as new copies.

Getting started is a matter of installing Googly Player, which is distributed through Google Play, and granting photo access. The interface follows Material Design 3, picks up your wallpaper palette through Material You on Android 12 and later, and runs in any of 17 languages from an in-app picker that is independent of the system language. On Android 13 and later that choice also appears under Settings › Apps › Googly Player › Language. To find a photo quickly, Global Search on the More tab scans videos, music and photos in one pass and opens a photo result in the right place.

Questions

Does saving an edit overwrite my original photo?

No. Save writes a new file and confirms with “Saved a copy to your gallery”. Batch filter also saves filtered copies rather than changing the selected photos.

Are my photos uploaded anywhere when I edit them?

No. Every permission prompt in the app states that nothing is uploaded and everything stays on the device.

What does Auto do if my photo is already well exposed?

It analyses the luminance histogram, and if the black and white points show the photo is already well exposed, it tells you “Already well balanced” instead of applying a correction.

Can I blur just a licence plate or a face?

Yes. Selective blur lets you paint a mask over any region, such as a background, a face, a licence plate or sensitive text, and blur only that area, with an adjustable mask blur strength.

I only gave the app access to some photos. Will they disappear?

Not on Android 14 and later. We declare READ_MEDIA_VISUAL_USER_SELECTED, which keeps a partial grant in place between launches, and the app tells you that you have shared only some items and offers “Allow all”.

  • #Android photo editor
  • #Googly Player
  • #auto levels
  • #on-device photo editing
  • #photo filters
  • #selective blur

Comments

Add a comment
Sign in with Google to join the conversation