image-rs / image

Encoding and decoding images in Rust
Apache License 2.0
5k stars 618 forks source link

Distribution of functionality between image and imageproc crates #977

Open theotherphil opened 5 years ago

theotherphil commented 5 years ago

Both the image and imageproc crates contain functions for performing (some) affine transformations, colour and contrast adjustments, and image filtering.

Does anyone have a strong opinion on which functions should live where, or on an appropriate crate structure for the union of the functions provided by this crate and imageproc?

I have no preference for the final crate structure, but I would like to get rid of the current duplication of functionality, and would ideally like the resulting split to be easily discoverable.

HeroicKatora commented 5 years ago

I'd make this slightly dependent on the image-core rework of @fintelia. In its essence, imageproc could be based on image-core such that it is largely independent of image. For the current moment I'd leave everything as is and at some point begin the process of migrating functions over. What's your impression of the stability and maturity of imageproc in comparison to image?

theotherphil commented 5 years ago

Sorry, missed your comment at the time. Depending on a new image-core sounds good to me.

imageproc is definitely less stable and less mature than image as a whole, but as mature as the imageops module in image.

icefoxen commented 5 years ago

If I may I'd like to weigh in on this as having as little image processing stuff as possible part of the image crate. I'd prefer to have it concerned with reading and writing image formats only. Image processing generally doesn't depend on the on-disk image format at all, so having it be separate makes sense.