pedrocr / imagepipe Goto Github PK
View Code? Open in Web Editor NEWImage processing pipeline
License: GNU Lesser General Public License v3.0
Image processing pipeline
License: GNU Lesser General Public License v3.0
imagepipe
is not particularly well documented. It would be good to have a simple set of instructions for:
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:
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.
can add basic shape on image like frame, rectangle circle , rectiligne line ...
Hi,
I am the developer of raw-to-img, which uses imagepipe
internally.
A user an error, which seems to originate from imagepipe/rawloader not being able to decode an ARW file. I can reproduce the issue the user has, although other ARW files work fine for me.
This is the downstream issue: jzbor/raw-to-img#3
This is the file the user has uploaded as an example: Google Drive
Currently 0.23 version is used, and my app use mainly 0.24, so to compile app I need to compile this library
[patch.crates-io]
should be used in Cargo.toml file
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:
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?
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.
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?
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?
After the last release I enabled the option to automatically clear the image after saving.
However, when piping a screenshot to a chat app from Gallery, I'm now getting a warning that the file that I'm trying to send is not an image.
Disabling the privacy option allows direct piping to work again.
Is this the way the new option is supposed to work? I was looking forward not having to delete piped images from the ImagePipe folder after sharing.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.