Skip to content

fix(android): downsample bitmaps to reduce memory usage - #91

Open
luatbbg wants to merge 1 commit into
ionic-team:mainfrom
luatbbg:fix/android-bitmap-downsampling
Open

luatbbg wants to merge 1 commit into
ionic-team:mainfrom
luatbbg:fix/android-bitmap-downsampling

Conversation

@luatbbg

@luatbbg luatbbg commented Nov 6, 2026 •

Copy link
Copy Markdown

Description

Improve Android bitmap decoding by introducing bitmap downsampling in IonCameraFlow.kt and LegacyCameraFlow.java.

The changes use BitmapFactory.Options with inJustDecodeBounds and inSampleSize to avoid decoding unnecessarily large bitmaps at full resolution.

Change Type

  • Fix
  • Feature
  • Refactor
  • Breaking Change
  • Documentation
  • Other (CI, chores, etc.)

Rationale / Problems Fixed

Decoding high-resolution camera and gallery images directly into memory can cause excessive memory consumption and increase the risk of OutOfMemoryError.

This change introduces sampled bitmap decoding to reduce peak memory usage during image processing.

It also aims to address the bitmap downsampling performance recommendation reported by Google Play Console.

Tests or Reproductions

Android Gradle build: pending final confirmation.

Manual camera and gallery testing: pending verification.

Screenshots / Media

Not applicable. This change affects native Android image processing.

Platforms Affected

  • Android
  • iOS
  • Web

Notes / Comments

The implementation currently uses a maximum bitmap dimension target of 2048 pixels. Feedback is welcome on whether this should be configurable or derived from the requested image dimensions to preserve the plugin's existing behavior.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant