Giter Site home page Giter Site logo

imagepipe's People

Contributors

ghizzo01 avatar paolobarbolini avatar pedrocr avatar runfalk avatar schoenenberg 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

Watchers

 avatar  avatar  avatar  avatar

imagepipe's Issues

(Feature request) include "File Size" displayed in Editor window; maybe near "quality"; also 2) examples for use-case scenarios or definitions of "height" "width" "quality" and/or references to what those mean

Hi I love Imagepipe (a lot). Thank you!!
1)File Size displayed
Reasoning/my use case(s): I have not figured out fundamental elements of Digital imaging, size, filesize, resolution,megapixels, codecs, etc., though I have used Imagepipe to try and run some experiments to make sense of the resolution, filesize, ratio between the two... basically trying to minimize filesize while retaining necessary visual image information (i.e. I want the smallest filesize while still retaining readability of text within a screenshot).
Anywho, I imagine it could be helpful and a valuable addition (now that i think about it... a GREAT VALUE and learning opportunity for someone like me*) to include the "file size" in the editor window; that way the user knows how big the file will be before saving and can adjust accordingly.

*Learning opportunity to experiment with changes in file resolution, and quality, and to see the corresponding effects/results on the original image in real-time, and, to even save the results for future reference (perhaps in a "cheat sheet" format to determine what settimgs to use for different use-case scenarios.

(NOTE I have a screenshot example but cant figure iut how to attach it on Android in browser nor via Github app... i might havr to wait until i am at a desktop to attach... basically the two "'File Size' text window location" ideas are: 1) "File Size: " is next to "quality" (above image editing buttons near top of window) and/or 2) "File Size: ____" is under "size ___" at bottom right corner of window)


A potential additional/supplemental/related idea (maybe a feature request) that might be worthwhile (it would for me!) Is alomg these lines (not sure if this should belong as a separate "issue" or merged with a similar issue as a comment/reply):
2) Basic Examples of common usage settings & effects on file size
Examples:

  • (In the "scanning documents for archival purposes" scenario, hence "dpi" ('resolution' might be imagepipe's a corresponding analogy to 'dpi'), examples might be:)
  • 300dpi for scanning text
  • 600dpi for images or text with font size<9;
  • Imagepipe potential examples:
  • Note: this example is similar to the "scanning/300dpi" example above, only using numbers seen in/used by Imagepipe. I'm guessing these are "resolution" numbers (pixels? Arbitrary Ratio? Px? Corresponds to text or font size?)
  • Imagepipe (use-Case example 1): Maintain legibility of text on a screenshot from a phone with a 720 vertical resolution screen (aka = ____("height"/vertical) ___("width"/horizontal) (720x350) = quality:80, "size"(*shown in imagepipe above "Shrink" and "Reload" in bottom right corner of editor window):480
  • Imagepipe (use-Case example 2): for screen shots taller than 720 screen, adjust settings by xv (x = # of screens 'shot'/% of screen size occupied by full screenshot image file; v ("height") = vertical #(/resolution(?)) of screen);
  • screenshot is 2 screens tall, or 2x/twice/200% the size of a 720 screen (200% of 720).
  • So, 2(720)=1440
  • 1440 - "size" (make your vertical resolution in imagepipe aka "size" 1440 to maintain text legibility at 80% quality)
  • *Note: Round-up if # of screens "shot" is unknown.
  • x = # of vertical screens screenshot for the entire resullting image, rounded up to nearest .5 or .0/whole number to be safe
    - e.g. Screenshot is the size of 2 - 3 screens (possibly 2.5 screens maybe closer to 3 screens) so to be safe, in order to maintain legibility of text round up to 3 (as opposed to 2.5) to find your "x" value - 3x/300%; 3(720) = 2160
  • "size": 2160

  • [I<3imagepipe]

Add basic documentation

imagepipe is not particularly well documented. It would be good to have a simple set of instructions for:

  1. How to use the basic pipeline just to output a JPG (based on the converter code already in the repo)
  2. How to change options in the pipeline to change the output (see the ops code and the chimper code for how to change options and rerun the pipeline)

Please don't load dependencies from a local path

I'm trying your rawloader and imagepipe crates by loading the latest version from git, but I see you set a local path for rawloader and multicache in the imagepipe Cargo.toml. This obviously breaks the build for everybody else since when importing the package from git (as you can see here) those folders aren't there.

[dependencies]
rawloader = { git = "https://github.com/pedrocr/rawloader.git" }
imagepipe = { git = "https://github.com/pedrocr/imagepipe.git" }

Why did you do it that way?

Deprecation warning and rust edition

Currently there are many deprecation warnings both in imagepipe and rawloader. I think it's mainly dyn trait and try! macro deprecation. I also noticed that the Rust edition is still 2015. Are you open for PRs that fix this?

Support for image-rs 0.24.1

Currently 0.23 version is used, and my app use mainly 0.24, so to compile app I need to compile this library

Resizing but without renaming

First of all thank you for creating this practical utility!

I've got a feature request based on a different use-case.

Imagepipe's privacy-enabling default of removing exif data & name makes sense in hindsight that nowadays more often than not images will be shared on social media controlled by giant like Google or Facebook.

Although for my desired use-case of sharing privately by email or with decentralized IM alternatives (Element, Jumi, etc.) I want to resize (resp. downsize) but while keeping the filename and exif data intact.

In Imagepipe's /Settings there's the chapter /File Saving which only allows settings for the renaming but not an option to keep the name as it is.

Do you have anything like that planned on your roadmap?

Transform HEIF metadata to EXIF metadata

Even with the EXIF filters set to ALL, the metadata from HEIF/HEIC files does not make into the final JPEG file. It would be nice if this worked so we don't miss the date the picture was taken and the location.

Dark NEF image compared to other RAW viewer

I tried out the library with NEF files from my Nikon D7000. I have used Geeqie before and I find that the images are much darker in rawloader:

rawloader

On the left the raw file is displayed by Geeqie and on the right the same image decoded by rawloader. I decoded it into a PPM image and then used imagemagick to convert that to a TIFF.

The code I used for converting to PPM is based on the one from the README:

fn srgb_to_ppm(filename: &str, image: &rawloader::SRGBImage) {
    // Write out the image as a grayscale PPM
    let mut f = BufWriter::new(File::create(format!("{}", filename)).unwrap());
    let preamble = format!("P6 {} {} {}\n", image.width, image.height, 255).into_bytes();
    f.write_all(&preamble).unwrap();

    for pixel in &image.data {
        f.write_all(&[*pixel]).unwrap();
    }
}

let nef_raw = rawloader::decode("taipei101.nef").unwrap();
let nef_srgb = nef_raw.to_srgb(0, 0).unwrap();
srgb_to_ppm("taipei101.ppm", &nef_srgb);

To convert the PPM to TIFF I used:

$ convert taipei101.ppm taipei101.tiff

I can provide the NEF if necessary.

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.