New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Promotes next to master branch #1132
Commits on Jun 5, 2019
-
Remove bit depth parameter on colortypes
It is an open question whether L2 and L4 should be included, or conversely whether L1 should be eliminated
-
-
-
Commits on Jun 6, 2019
-
-
Don't implement From<ColorType> for (png::ColorType, png::BitDepth)
Also clarify description of ColorType::Unknown and fix a few warnings
Commits on Jul 23, 2019
-
Merge pull request #865 from fintelia/colortype
Refactor the ColorType enum
-
-
Commits on Jul 24, 2019
Commits on Aug 9, 2019
Commits on Aug 18, 2019
Commits on Aug 21, 2019
-
Merge pull request #1012 from fintelia/colortype3
A bunch more ColorType improvements for image:next
Commits on Aug 23, 2019
-
-
Merge pull request #1004 from lovasoa/next
Make copy_from return an ImageResult instead of a boolean
Commits on Oct 3, 2019
Commits on Oct 8, 2019
-
Merge pull request #1054 from HeroicKatora/next
Update next with latest changes to master
Commits on Oct 10, 2019
Commits on Oct 11, 2019
-
Change to proper WebP capitalization
Unlike the other formats this is not a single acronym, doesn't contain too many capitals and the website and documentation strongly suggests this way.
Commits on Oct 12, 2019
-
Merge pull request #1056 from HeroicKatora/screamless
Convert ImageFormat variants to CamelCase
Commits on Oct 18, 2019
Commits on Oct 19, 2019
-
Merge pull request #1061 from fintelia/decoder-rename
Proper capitalization for decoder struct names
-
-
-
Apply suggestions from code review
Co-Authored-By: est31 <est31@users.noreply.github.com>
-
Co-Authored-By: Yuki Okushi <huyuumi.dev@gmail.com>
-
-
-
-
-
Commits on Oct 21, 2019
Commits on Oct 22, 2019
Commits on Oct 25, 2019
-
-
-
Merge pull request #1044 from fintelia/image-decoder-tweak
Opinionated changes to ImageDecoder
-
Commits on Oct 27, 2019
-
Merge pull request #1063 from fintelia/read-rect-u32
Make read_rect take u32 for {x, y, width, height}
-
Convert error with private methods, not From
The latter is part of the a publicly visible crate interface. This makes it impossible to upgrade the image format crates used for these specific format over major versions. Using this pattern is problematic in several aspects: * less mature formats are harder to adopt as they are a huge commitment * bugs and issues that require breaking changes require a coordinate effort across the whole dependency chain and ecosystem * dependent crates we control do not evolve as independently as I would wish It should arguably be avoided to have an unecessary public interface dependency *unless a format reaches a stable 1.0 interface itself* where it is no large liability. For consistency this should be uniform across formats without regards to whether they are internally implemented, a crate in image-rs, or otherwise.
-
Merge pull request #1068 from HeroicKatora/next
Convert error with private methods, not From
Commits on Nov 8, 2019
Commits on Nov 11, 2019
-
Merge pull request #1062 from fintelia/less-in-root
Less in root
Commits on Nov 19, 2019
-
-
Merge pull request #1066 from Mike-Neto/master
Fixes #1058. Migrated to ImageError from std::io::Error
Commits on Nov 23, 2019
-
Allow setting a custom pixel density in the JPEG encoder
The encoder used to hardcode a pixel aspect ratio of 1x1 It allows setting a custom DPI value. Fixes #1077
-
Remove the ability to chain method calls in JpegDecoder::set_pixel_de…
…nsity requested by @fintelia in #1078 (review)
-
Merge pull request #1078 from lovasoa/next
Allow setting a custom pixel density in the JPEG encoder
Commits on Nov 25, 2019
-
-
Merge pull request #1081 from HeroicKatora/next
Bump tiff version for `next`
Commits on Nov 27, 2019
Commits on Nov 28, 2019
-
These images are now discouraged for use by the Nature Publishing Group, Optical Society, and SIAM, as well as having been removed from other major image processing libraries including Matlab and FIJI/ImageJ. Instead the Mandrill image (SIPI image 4.2.03) is used for tiff integration testing, benchmarking, and examples, and a reference image from PNGSuite is used for interlaced tests.
-
-
Merge pull request #1086 from aschampion/issues/benchmarks-broken
Fix benchmarks and ensure compilation on Travis
-
Merge pull request #1087 from aschampion/replace-lenna-images
Replace Lenna test images
Commits on Nov 30, 2019
-
-
Make Progress opaque but accessible
This makes it possible to add some members in the future. Note that only this library can create an instance which means it is currently unusable by user-defined decoders. This is a less pressing concern though, these can simply never call the callback.
-
Merge pull request #1089 from HeroicKatora/next
Document and expose all new pub structures
Commits on Dec 5, 2019
Commits on Dec 6, 2019
-
Merge pull request #1091 from HeroicKatora/next
Update release and notes for 0.23 preview
Commits on Dec 7, 2019
Commits on Dec 8, 2019
-
Merge pull request #1093 from fintelia/simplify-cargo-toml
Simplify cargo toml
Commits on Dec 10, 2019
-
Support 16 bit per channel image buffers
Add 16 bit buffers for all 16 bit types in ColorType. Include these as supported types in DynamicImage. These 16 bit images are currently only supported with u16 representation; changing this would require specialization and macroing of color conversions. Load 16 bit PNGs at full bit depth rather than squashing to 8 bit. Note that tests will not pass until upgrading to a release of image-png including image-rs/image-png#174. Closes #560. Closes #665. Closes #940.
-
Create common trait for all image format encoders
This ImageEncoder trait is currently minimal, but establishes a uniform interface so that all formats have native endian encoding interfaces, which is necessary for 16 bit per channel encoding. Closes #1076.
-
-
Remove ColorType::bytes_per_channel
Per review comments, this assumes equal channel bit depths, which will not be the case in the future.
-
-
Restore as_flat_samples methods for DynamicImage
Because the return type depends on the buffer's bits per channel, make the return optional and provide separate methods for 8 and 16 bit images.
-
Remove zerocopy from public interface
Instead create a crate-local AsBytes wrapper trait. This trait is not sealed as Primitive was not sealed, so that users can delegate it for newtypes if needed.
Commits on Dec 12, 2019
-
-
-
-
-
Switch from zerocopy to bytemuck
Bytemuck is more feature constrained and builds on Rust 1.34.2.
-
Merge pull request #1085 from aschampion/features/16bpc-dynimage-squash
16 bit per channel image buffers and dynamic images
Commits on Dec 13, 2019
Commits on Dec 15, 2019
Commits on Dec 20, 2019
-
-
Merge pull request #1036 from fintelia/delay-overflow
Fix potential overflow in GIF decoding
Commits on Dec 31, 2019
-
-
Merge pull request #1106 from HeroicKatora/edition-2018
Update to Edition 2018
Commits on Jan 9, 2020
-
-
Merge pull request #1110 from HeroicKatora/error-module
Move error types to seperate module
Commits on Jan 11, 2020
-
Update the quickcheck dev-dependency
It has become quite outdated at this point but luckily is maintained with a commitment to MSRV of 1.30. The main point of the update are some reported issues with rand and the dependency rdrand. Not that any of those are actually relevant but this reduces the burden of proof for verifications (crev, etc.) of code bases using the image crate.
-
Merge pull request #1114 from HeroicKatora/update-quickcheck
Update the quickcheck dev-dependency
Commits on Jan 21, 2020
Commits on Jan 31, 2020
Commits on Feb 1, 2020
-
Make ImageFormat related enums non-exhaustive
Also note the curious and complicated but clever way of statically eliminating the actual branch in matchings, and avoid the need for unreachable markers within the crate. This has been ported to the other uses of non-exhaustive enumerations.
-
Merge pull request #1121 from benoitryder/master
Add support for DDS files using DXT1, DXT3 or DXT5 compression
-
Merge pull request #1123 from HeroicKatora/format-non-exhaustive
Make ImageFormat related enums non-exhaustive
-
-
Merge pull request #1124 from HeroicKatora/dds-required-feature
Add missing feature requirement dxt for dds
-
Add an opaque redesign for error type
Moves away from a single, open representation of errors. This considers a previously identified few issues: * The new variants are somewhat actionable since they at least identify the cause more closely. * They are extensible as most state is opaque to some degree and key enumerations are marked as non-exhaustive. * They are more precise as the opaque state allows storing specialized variants for supported formats while still maintaining a uniform interface and permitting extension formats outside the library. * Handling of 'stringification' is more principled as error values can be stored as-is instead of converting them on the spot. This might also improve the performance when the conversion is not required. This is part of a patch series. The commit merely adds the new type and a rough interface but does not yet convert the existing error instances and return types.
-
Add utility constructors for new error type
Emulates the old enum variants with the new type through constructor methods. Note that some variants have been slightly abused and do not map cleanly to a single new kind. These should be adjusted over time. The constructors are private to the crate. While exposing them would help transition, this also allows us to selectively and incrementally rework our own error usage by deprecating them and fixing occurring warnings. In particular, we should expose underlying errors as causes and so on. This commit is part of a patch series reworking error types. The next patch switches the old error type for the new one.
-
Switch error types with minimal cleanup
* The format detection is switch to clean variants * The pnm decoder was the only to utilize NotEnoughData and has been switched to a generic format error. It should not be an IO error. * The external test matches on the renamed unsupported variant
-
-
-
Add test/assertions for ImageError marker impls
Note that these are structural and thus also asserted on the interior subtypes. (Unless an unsafe impl were to be added but that should never happen in any case.)
-
Do a documentation pass and improve naming
All `new` constructors accept a detailed underlying description while the shorthands and alternatives are renamed to `from_*_hint` and `from_kind` respectively. This is supposed to encourage utilizing a detailed error representation in dependencies with the new constructor. Note that the UnsupportedError and LimitError have no `new` constructor but utilize the naming convention regardless. This is to avoid blocking the name if we introduce an underlying error representation for them.
-
Use boxed str instead of String for error message
These are not modified while storing within the error and should be faded out over time. Storing the Box<str> saves some space in the representation with the size of a pointer. Note that DecodingError is actually the largest struct right now due to it supporting some legacy representations.
-
-
-
Merge pull request #1125 from HeroicKatora/benchmark-edition-2018
Fix benchmarks to edition 2018
-
-
Merge pull request #1119 from HeroicKatora/error-rework2
Error rework
Commits on Feb 2, 2020
-
Interface restrictions for gif and jpeg
Hide some public interface dependencies on gif and jpeg. Note that frame oriented functions are now unused and will likely be brought back in a (slightly less generic) manner that is more uniform over other multi frame formats as well.
-
Fixed animation::Frame and raw byte interfaces
Note that some use within the library itself would use a buffer with wrong buffer size or disregard width and height errors.
-
Merge pull request #1126 from HeroicKatora/remove-public-dependencies
Interface restrictions for gif and jpeg
-
Add travis script and public dependency reference
See the nightly feature `public-dependency`, tracking issue: #44663
-
Merge pull request #1127 from HeroicKatora/public-private-dependencies
Add travis script and public dependency reference
-
Two major reasons: * This avoids the public dependency on `num_ratio`. * The internal representation can be changed. This already proved necessary once (from u16 rational) and in this manner we are free to do it again by adding an inner enum representation. Note that we already have rounding semantics for the meaning of Delay as gif rounds to the nearest 10ms when writing frames. Any more or less precise representation can be made to round to the closest u32 ratio.
Commits on Feb 5, 2020
-
Add conversion of Delay into time::Duration
With the original available as a millisecond ratio this can easily be done to the accuracy of nanoseconds, which is the finest available.
-
-
Add a saturating conversion from time::Duration
Given the prior usage, it does not make much sense to provide an exact conversion. However, it should be clear that precision is not finite and the representation is not exactly that of a Duration. The implementation turned out to be fairly involved as the num-fraction crate does not provide approximation algorithms for fractions. No fear, we code them ourselves with extensive testing to cover much more than the required accuracy tests.
Commits on Feb 7, 2020
-
Merge pull request #1128 from HeroicKatora/hide-num-ratio
Encapsulate the delay ratio
-
Merge pull request #1131 from HeroicKatora/upstream-master
Upstream from master