Coder Social home page Coder Social logo

t8rin / imagetoolbox Goto Github PK

View Code? Open in Web Editor NEW
2.2K 24.0 106.0 289.19 MB

🖼️ Image Toolbox is an powerful picture editor, which can crop, apply filters, add some drawing, erase background, edit EXIF or even create PDF file

License: Apache License 2.0

Kotlin 100.00%
jetpack-compose kotlin android material-you exif exiftool crop f-droid filter-image aes-256

imagetoolbox's Introduction


Image Toolbox


API Kotlin Jetpack Compose material

GitHub commits since tagged version (branch) GitHub code size in bytes

Hits

Image Toolbox is a powerful picture editor, which can crop,

apply filters, add some drawing, erase background, edit EXIF or even create PDF file

✈️ Telegram Links


Telegram Telegram

Join our chat where you can discuss anything you want and also look into the CI channel where I will post betas and announcements

☕ Buy me a coffee

This application is completely free, but if you want to support the project development, you can send a donation to the crypto wallets below


Bitcoin

-> 17Pk1RurnkJxLV9V7mc6Y7dLyHFb9rvQDq <-


Tether

-> TMPAu7a54NvQNEKnNWh3naXu3oYijqP3U7 <-

📲 Download

Go to the Releases and the download latest apk or click one of the badges below.


Google Play F-Droid GitHub

✨ Features

  • Batch processing

  • Applying filter chains (More than 160 various filters)

    Available filters
    • Saturation
    • Contrast
    • Brightness
    • Exposure
    • RGB
    • Hue
    • White Balance
    • Monochrome
    • Black and White
    • False Color
    • Sharpen
    • Gamma
    • Highlights and Shadows
    • Haze
    • Sepia Tone
    • Color Inversion
    • Solarize
    • Vibrance
    • Luminance Threshold
    • Pixellate
    • Halftone
    • Crosshatch
    • Sobel Edge Detection
    • Sketch Filter
    • Toon Filter
    • SmoothToon Filter
    • CGA Colorspace Filter
    • Posterize
    • Convolution 3x3
    • Emboss Filter
    • Laplacian
    • Kuwahara Filter
    • Vignette
    • Gaussian Blur
    • Box Blur
    • Stack Blur
    • Fast Blur
    • Bilaterial Blur
    • Zoom Blur
    • Median Blur
    • Pixelation
    • Enhanced Pixelation
    • Stroke Pixelation
    • Circle Pixelation
    • Enhanced Circle Pixelation
    • Diamond Pixelation
    • Enhanced Diamond Pixelation
    • Swirl Distortion
    • Bulge Distortion
    • Sphere Refraction
    • Glass Sphere Refraction
    • Dilation
    • Non Maximum Suppression
    • Opacity
    • Weak Pixel Inclusion Filter
    • Color Matrix 4x4
    • Lookup
    • Color Replacement
    • Color Removance
    • Bayer Two Dithering
    • Bayer Three Dithering
    • Bayer Four Dithering
    • Bayer Eight Dithering
    • Floyd Steinberg Dithering
    • Jarvis Judice Ninke Dithering
    • Sierra Dithering
    • Two Row Sierra Dithering
    • Sierra Lite Dithering
    • Atkinson Dithering
    • Stucki Dithering
    • Burkes Dithering
    • False Floyd Steinberg Dithering
    • Left To Right Dithering
    • Random Dithering
    • Simple Threshold Dithering
    • Quantizier
    • Glitch Effect
    • Enhanced Glitch Effect
    • Anaglyph
    • Noise
    • Tent Blur
    • Side Fade
    • Erode
    • Anisotropic Diffusion
    • Horizontal Wind Stagger
    • Fast Bilaterial Blur
    • Poisson Blur
    • Logarithmic Tone Mapping
    • Aces Filmic Tone Mapping
    • Crystallize
    • Fractal Glass
    • Marble
    • Oil
    • Water Effect
    • Hable Filmic Tone Mapping
    • Aces Hill Tone Mapping
    • Hejl Burgess Tone Mapping
    • Perlin Distortion
    • Grayscale
    • Dehaze
    • Color Matrix 3x3
    • Achromatomaly
    • Achromatopsia
    • Browni
    • CodaChrome
    • Cool
    • Deutaromaly
    • Deutaronotopia
    • Night Vision
    • Polaroid
    • Protanopia
    • Protonomaly
    • Tritanopia
    • Tritonomaly
    • Vintage
    • Warm
    • Grain
    • Unsharp
    • Pastel
    • Orange Haze
    • Pink Dream
    • Golden Hour
    • Hot Summer
    • Purple Mist
    • Sunrise
    • Colorful Swirl
    • Soft Spring Light
    • Autumn Tones
    • Lavender Dream
    • Cyberpunk
    • Lemonade Light
    • Spectral Fire
    • Night Magic
    • Fantasy Landscape
    • Color Explosion
    • Electric Gradient
    • Caramel Darkness
    • Futuristic Gradient
    • Green Sun
    • Rainbow World
    • Deep Purple
    • Space Portal
    • Red Swirl
    • Digital Code
    • Bokeh
    • Neon
    • Old Tv
    • Shuffle Blur
    • Mobius
    • Uchimura
    • Aldridge
    • Drago
    • Color Anomaly
    • Quantizier
    • Ring Blur
    • Cross Blur
    • Circle Blur
    • Star Blur
    • Motion Blur
    • Fast Gaussian Blur 2D
    • Fast Gaussian Blur 3D
    • Fast Gaussian Blur 4D
  • AES-256 GCM No Padding files encryption and decryption

  • Extract Text From Images

    • 120+ languages
    • 3 Type of data: Fast, Standard, Best
    • Segmentation Mode Selection
    • Multiple languages at the same time
  • EXIF metadata editing/deleting

  • Loading images from internet

  • Image Stitching

  • Background Removal

    • By drawing
    • Automatically
  • Watermarking

    • By Text
    • By Image
  • Drawing on Image/Background

    • Pen
    • Neon
    • Highlighter
    • Privacy Blur
    • Pixelation Paint
    • Pointing Arrow
    • Line
    • Double Pointing Arrow
    • Line Pointing Arrow
    • Double Line Pointing Arrow
    • Outlined Rect
    • Outlined Oval
    • Outlined Triangle
    • Outlined Polygon
    • Outlined Star
    • Rect
    • Oval
    • Triangle
    • Polygon
    • Star
    • Lasso
    • Text
    • Image Brush
  • Image Resizing

    • Width changing
    • Height changing
    • Adaptive resize
    • Resize retaining aspect ratio
    • Resize by given limits
    • Center Crop with
      • Background color changing
      • Background blur drawing
    • Different Scaling Algorithms
      • Bilinear
      • Nearest Neighbour
      • Bicubic
      • Mitchell
      • Lanczos
      • Catmull
      • Hermite
      • Spline
      • BSpline
      • Hann
  • GIF conversion

    • GIF to images
    • Images to GIF
  • APNG conversion

    • APNG to images
    • Images to APNG
  • JXL transcoding

    • JXL to JPEG
    • JPEG to JXL
  • Animated JXL conversion

    • Images to JXL
    • JXL to Images
    • APNG to JXL
    • GIF to JXL
  • PDF tools

    • PDF to images
    • Images to PDF
    • PDF previewing
  • Document Scanning

  • Image Shrinking

    • Quality compressing
    • Preset shrinking
    • Reducing size by given weight (in KB)
  • Cropping

    • Regular crop
    • Crop by aspect ratio
    • Crop with shape mask
      • Rounded Corners
      • Cut Corners
      • Oval
      • Squircle
      • Octagon
      • Rounded Pentagon
      • Clover
      • Material Star
      • Kotlin Logo
      • Small Material Star
      • Heart
      • Enhanced Heart
      • Star
      • Image Mask
  • Tracing raster images to SVG

  • Format Conversion

    • HEIF
    • HEIC
    • AVIF
    • WEBP
    • JPEG
    • JPG
    • PNG Lossless
    • PNG Lossy
    • MozJpeg
    • Jpegli
    • JXL
    • SVG and GIF to WEBP, PNG, JPEG, JPG, HEIF, HEIC, AVIF, JXL
    • Telegram sticker PNG format
  • Files to Zip

  • Comparing images

    • Slide
    • Toggle Tap
    • Transparency
    • Side By Side
  • Color Utils

    • Palette generation
      • Material You Scheme
      • Simple Colors
    • Picking color from image
    • Gradient creation
    • Overlaying image with gradient
  • Image source selection

  • Additional Features

    • Rotating
    • Flipping
    • Previewing SVG, GIF and almost all types of images
    • Saving to any specific folder
    • Long press on save to choose one time output folder
    • Randomizing output filename
    • Embedded media picker

And More!

🌟 UI tweaks

  • Selecting Emoji for top app bar
  • Ability to use Pixel like switch instead of Material You
  • Secure Mode for app
  • Maximum brightness for selected screens
  • In app language changing
  • Enabling or Disabling confetti
  • Custom app color scheme
    • Different palette styles
    • Predefined schemes
    • Color inversion
    • Contrast adjusting
  • Controlling borders thickness
  • Enabling and disabling each existing shadow
  • Haptics controls
  • Light/Dark mode
  • AMOLED mode
  • Monet implementation (Dynamic colors) even for Android versions less than 12 by Dynamic Theme
  • Image based color scheme
  • Icons Background shape selection
    • Rounded Corners
    • Cut Corners
    • Oval
    • Squircle
    • Octagon
    • Rounded Pentagon
    • Clover
    • Material Star
    • Small Material Star
    • Heart
    • Enhanced Heart
  • Custom fonts
    • Montserrat
    • Comfortaa
    • Caveat
    • Handjet
    • Jura
    • Podkova
    • Tektur
    • YsabeauSC
    • DejaVu
    • BadScript
    • RuslanDisplay
    • Catterdale
    • FRM32
    • Tokeely Brookings
    • Nunito
    • Nothing
    • WOPR Tweaked
    • Alegreya Sans
    • Minecraft Gnu
    • Granite Fixed
    • Nokia Pixel
    • Ztivalia
    • Axotrel
    • Lcd Octagon
    • Lcd Moving
    • Unisource
  • In app font scale changing
  • Changing between options list and grouped view
  • Confetti Type selection
    • Default
    • Festive
    • Explode
    • Rain
    • Side
    • Corners
    • ImageToolbox
  • Switch Type selection:
    • Material You
    • Compose
    • Pixel
    • Fluent
    • Cupertino

(Yes, the app supports dynamic coloring based on wallpapers for every android version)

📚 Tech stack & Open-source libraries

  • Minimum SDK level 21

  • Kotlin based

  • Image Toolbox Libs - set of essential libraries for Image Toolbox.

  • Dynamic Theme - library, which allows you to easily implement custom color theming.

  • Modal Sheet - modal bottom sheet that follows M3 guidelines.

  • Coroutines for asynchronous work.

  • Flow to emit values from data layer reactively.

  • Accompanist to expand jetpack compose opportunities.

  • Hilt for dependency injection.

  • Coil for loading images.

  • Compose Navigation Reimagined - High intelligence navigation library for Jetpack Compose.

  • Konfetti to establish beautiful particle system.

  • Jetpack

    • Compose - Modern Declarative UI style framework based on composable functions.

    • Material You Kit - Material 3 powerful UI components.

    • ViewModel - Manages UI-related data holder and lifecycle awareness. Allows data to survive configuration changes such as screen rotations.

    • Data Store - Store data asynchronously, consistently, and transactionally.

    • Lifecycle - Observe Android lifecycles and handle UI states upon the lifecycle changes.

    • Exif Interface - Read and write image file EXIF tags.

  • GPU Image for creating and applying filters to the images.

  • SmartToolFactory provides a bunch of helpful libraries.

  • AVIF Coder and JXL Coder libraries which provide avif, heic, heif and jxl support.

  • Aire for creating and applying filters to the images on CPU using native cpp code.

🌐 Translation

You can help translate ImageResizer into your language on Hosted Weblate

Состояние перевода
Translation status

❤️ Find this repository useful?

Support it by joining stargazers for this repository. ⭐
And follow me for my next creations! 🤩

⭐ Star History

Star History Chart

📢 Contributors

⚖️ License

Designed and developed by 2023 T8RIN

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Photos by Pawel Czerwinski on Unsplash

imagetoolbox's People

Contributors

a-mento avatar abc0922001 avatar alexandru51 avatar atalanttore avatar atrafon avatar c4yrslf avatar cameo007 avatar chaj07 avatar dependabot[bot] avatar edxkl avatar emperormummy avatar fallsdevil avatar islam2hamy avatar ivercoder avatar jesse205 avatar kefir2105 avatar olokelo avatar plum7x avatar ptrwrbl avatar rehork avatar rex07 avatar rezaalmanda avatar rinkaguraaa avatar robbillabong avatar rr-vesp avatar souffly007 avatar t8rin avatar weblate avatar xventivs avatar yurtpage avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

imagetoolbox's Issues

Italian translation

Hello,
I would like to add Italian translation to the app. Could I work on it?
Thank you.

What the airplane icon do??

I just saw the new paper airplane icon on the top bar, and I'm wondering what it does.... It seems to be some kind of preset?

[Feature request] Resizing with fitting width and height

I suggest that let users specify a range instead of a fixed size for resizing by WidthLimit or HeightLimit depending on the image aspect ratio.

if the image width or height is greater than the limit, and...

  • the image aspect ratio >= WidthLimit/HeightLimit
    then resize by WidthLimit.
  • the image aspect ratio <= WidthLimit/HeightLimit
    then resize by HeighthLimit.

For example WidthLimit=800, HeightLimit=800

  • image1: 4000x3000 -> 800x600
  • image2: 3000x4000 -> 600x800
  • image3: 400x300 -> do nothing
  • image4: 300x400 -> do nothing

Aspect ratio

Please add the support aspect ratio for cropping pictures. (Like the Snapseed app)

IMG_20230303_161124_372.jpg

Improve the crop feature

Please improve the crop feature.
I can change the aspect ratio when I locked it.

VID_20230307_172030_872.mp4

Snapseed is working fine:

VID_20230307_172040_194.mp4

Images don't save.

Tapping the save icon does nothing.

Device: Pixel 7, Android 13.

Also, there's no padding from the bottom navigation bar in the UI. There should be some spacing there.

Show as image editor

Hi, I can't see this app as an image editor.
I want to use your app to crop my photos.
Please fix this issue.
Thanks 🙏

Screenshot_2023-03-03-02-30-46-561_deckers.thibault.aves.jpg

Screenshot_2023-03-03-02-31-15-761_android.jpg

F-Droid inclusion

While your app is already listed in my repo, someone opened an inclusion request with F-Droid – where issuebot complained about missing fastlane structures. With your app listed in my repo I have already set them up. Originally I wanted to provide them to you via a PR, but Gihub is currently stuck when trying to fork – so find the files attached below.

Simply unzip the archive to your repo's root, then add and commit the changes. Be welcome to update the description, replace the screenshots, add a featureGraphic, add per-release changelogs, additional locales – as you wish: it's yours 😃 Be welcome to use my Fastlane Cheat Sheet for guidance.

fastlane.zip

Btw: that "someone" (literally: "Somebody") ticked the box of having you (the author of this app) informed and stating you're not opposed to inclusion, so you're probably aware already.

feature req. in batch resize

the ability to crop a photo for only one photo (the one I choose in the preview photo (#19))
Also, it should say that this will only work for 1 photo

Implement AI super resolution scalers

I was wondering if there's any chance to include AI super resolution scalers like Waifu2x, RealSR, etc. for upscaling images? These scalers can work if there's Vulcan support and binaries can be found here.

[Bug] Copied Picture

Hi

VID_20230323_032335_257.mp4

Why I can't open copied picture to this app?

android.intent.action.EDIT
content://org.mozilla.fenix.feature.downloads.fileprovider/mediaShareCache/629757759.webp
image/*
intent://org.mozilla.fenix.feature.downloads.fileprovider/mediaShareCache/629757759.webp#Intent;scheme=content;action=android.intent.action.EDIT;type=image/*;launchFlags=0x13108001;sourceBounds=304%20575%20892%201920;B.edit_source_clipboard=true;end

Crashed when batch processing two images

Here is the error code:
java.lang.OutOfMemoryError: Failed to allocate a 132483960 byte allocation with 16773152 free bytes and 94MB until OOM
java.lang.OutOfMemoryError: Failed to allocate a 132483960 byte allocation with 16773152 free bytes and 94MB until OOM
at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
at android.graphics.BitmapFactory.decodeStreamInternal(BitmapFactory.java:726)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:702)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:740)
at f6.a.h(SourceFile)
at q5.e.j(SourceFile:45)
at e4.a.p(SourceFile)
at u4.h0.run(SourceFile)
at kotlinx.coroutines.internal.e.run(SourceFile)
at kotlinx.coroutines.scheduling.j.run(SourceFile)
at kotlinx.coroutines.scheduling.a$a.run(SourceFile:79)
Suppressed: u4.f0: [k1{Cancelling}@74a284, Dispatchers.Main.immediate]

Crash on Resize by weight

java.lang.NullPointerException
java.lang.NullPointerException
at t8.d.a(SourceFile:168)
at ru.tech.imageresizershrinker.main_screen.l.a0(SourceFile:19)
at z7.b$a.j(SourceFile:231)
at h6.a.v(Unknown Source:8)
at z6.j0.run(Unknown Source:100)
at kotlinx.coroutines.internal.f.run(Unknown Source:11)
at kotlinx.coroutines.scheduling.j.run(Unknown Source:2)
at kotlinx.coroutines.scheduling.a$a.run(SourceFile:79)
Suppressed: m4.e: [o1{Cancelling}@f936221, Dispatchers.Main.immediate]

Fix padding bugs

FAB doesn't have proper puddings in landscape mode
And in crop mode there is missed padding of navbars
Screenshot_20230329_134629_Image Resizer
Screenshot_20230329_134437_Image Resizer

Screenshot_20230329_134711_Image Resizer

feature req. resize video

this is as important as the photo (for me)

I would like to see the same functionality for video

right now there is no resizer for video (open source) and your app is absolutely perfect for photos, it would be good if you added resize video. Then it would be a multifunctional app, which I also need

Many people need it, I think

feature req. in batch resize

Now only the first picture is shown in the batch resize

I suggest adding a button that, when clicked, opens a menu with a choice of "which photo to view? There will be the number or names of all the selected photos, clicking on one of them will open this image

This is to check if I resize correctly for each photo

Vertical Compare

Thanks for creating this app and compare tool.
Please add the vertical comparison tool.
Screenshot_2023-03-16-15-47-48-999_ru.tech.imageresizershrinker-01.jpeg
Thanks 🙏

[BUG] App crashes on image save

java.lang.NullPointerException
java.lang.NullPointerException
at s6.c.a(SourceFile:168)
at ru.tech.imageresizershrinker.main_screen.t.Z(SourceFile:19)
at q6.b$a.j(SourceFile:135)
at o4.a.s(Unknown Source:8)
at f5.i0.run(Unknown Source:100)
at kotlinx.coroutines.internal.e.run(Unknown Source:11)
at kotlinx.coroutines.scheduling.j.run(Unknown Source:2)
at kotlinx.coroutines.scheduling.a$a.run(SourceFile:79)
Suppressed: f5.g0: [l1{Cancelling}@832c9f8, Dispatchers.Main.immediate]<

This issue happens permanently, every time I'm trying to save a size-reduced image.

App crash when resizing bigger

Hi,
When i select resize to JPEG + maintain aspect ratio.
If i add more numbers into the width to resize bigger, the app crashes.

Screenshot_20230223-225047_Image Resizer

Save Location

Resized images appears on Camera folder of Google Photos because images saved under a subfolder in /sdcard/DCIM. Could you move the subfolder to /sdcard/Pictures ?

Romanian translation

Hello, i translated this app in romanian from weblate. So, can you add it in the next update if posibile?

Batch resize

Please allow user to mark and resize multiple files at once.

Rename the app

I suggest you rename the app to "Image Tools"
The app is more than just an image resizer.

Bad rendering of translated text in top app bar

I'm working on Italian translation (#31) and I noticed that in the Batch Resize activity the English title fits perfectly, while the French and the Italian strings, which are longer, overflows.


Default language (English)

French

Italian

I came up with two possible solutions:

  • In the composable function, set a text size smaller than the default language for French and Italian, something like this:
if (app is using the default language){
    // Render text in the default size
} else if (app is using the French translation) {
    // Render the text optimally for French strings (maybe with a small text size)
} ...
  • Apply a marquee behavior to the text that overflows.

Also I got suggestions here and here.

Fix single crop

Image is always scaled to 4k after crop in single resize mode

German translation

Sorry, but German translation of "Resize by weight" (Größenänderung nach Gewichtung") doesn't make much sense. Of course, it's not colloquial in German to speak of the "weight" of a file in terms of size. So the related term "Gewichtung" is a bit misleading, as it's more linked to "evaluation", "ranking" than to the sought meaning. Obviously, as a repetition of the word "size" should be avoided, you could use "Volumen" ("volume", "amount"). So the whole item would be: "Größenänderung nach Volumen".

Otherwise, nice app (also nice UI). Thank you!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.