update details for v0.2.15

This commit is contained in:
Henry Schimke
2023-01-12 13:59:44 -06:00
parent ec0512722d
commit d163f677e8
4 changed files with 22 additions and 29 deletions

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "rxing" name = "rxing"
version = "0.2.14" version = "0.2.15"
description="A rust port of the zxing barcode library." description="A rust port of the zxing barcode library."
license="Apache-2.0" license="Apache-2.0"
repository="https://github.com/hschimke/rxing" repository="https://github.com/hschimke/rxing"

View File

@@ -51,6 +51,10 @@ fn main() {
``` ```
## Latest Release Notes ## Latest Release Notes
* *v0.2.15* -> Support for reading and writing svg files through the feature flags `svg_read` and `svg_write`.
These flags are off by default.
* *v0.2.14* -> Support for more image output formats, many rustification changes to the codebase. * *v0.2.14* -> Support for more image output formats, many rustification changes to the codebase.
If you were using very deep, specific functions in the encoder/decoder sections this may require a function rename. For instance `qrcode::encoder::encoder` is now `qrcode::encoder::qrcode_encoder`. If you were using very deep, specific functions in the encoder/decoder sections this may require a function rename. For instance `qrcode::encoder::encoder` is now `qrcode::encoder::qrcode_encoder`.

View File

@@ -98,27 +98,21 @@ impl BufferedImageLuminanceSource {
let mut raster: ImageBuffer<_, Vec<_>> = ImageBuffer::new(image.width(), image.height()); let mut raster: ImageBuffer<_, Vec<_>> = ImageBuffer::new(image.width(), image.height());
for x in 0..image.width() { for (x, y, new_pixel) in raster.enumerate_pixels_mut() {
for y in 0..image.height() {
let pixel = img.get_pixel(x, y); let pixel = img.get_pixel(x, y);
let [red, green, blue, alpha] = pixel.0; let [red, green, blue, alpha] = pixel.0;
if alpha == 0 { if alpha == 0 {
// white, so we know its luminance is 255 // white, so we know its luminance is 255
raster.put_pixel(x, y, Luma([0xFF])) *new_pixel = Luma([0xFF])
} else { } else {
// .299R + 0.587G + 0.114B (YUV/YIQ for PAL and NTSC), // .299R + 0.587G + 0.114B (YUV/YIQ for PAL and NTSC),
// (306*R) >> 10 is approximately equal to R*0.299, and so on. // (306*R) >> 10 is approximately equal to R*0.299, and so on.
// 0x200 >> 10 is 0.5, it implements rounding. // 0x200 >> 10 is 0.5, it implements rounding.
raster.put_pixel( *new_pixel = Luma([((306 * (red as u64)
x,
y,
Luma([((306 * (red as u64)
+ 601 * (green as u64) + 601 * (green as u64)
+ 117 * (blue as u64) + 117 * (blue as u64)
+ 0x200) + 0x200)
>> 10) as u8]), >> 10) as u8])
);
}
} }
} }

View File

@@ -680,7 +680,7 @@ impl From<&BitMatrix> for image::DynamicImage {
let mut pixels = image::ImageBuffer::new(value.width, value.height); let mut pixels = image::ImageBuffer::new(value.width, value.height);
for (x, y, pixel) in pixels.enumerate_pixels_mut() { for (x, y, pixel) in pixels.enumerate_pixels_mut() {
let new_pixel = if value.get(x as u32, y as u32) { let new_pixel = if value.get(x, y) {
image::Rgb([0, 0, 0]) image::Rgb([0, 0, 0])
} else { } else {
image::Rgb([u8::MAX, u8::MAX, u8::MAX]) image::Rgb([u8::MAX, u8::MAX, u8::MAX])
@@ -698,12 +698,7 @@ impl From<&BitMatrix> for svg::Document {
let block_size = 1; let block_size = 1;
let mut document = svg::Document::new().set( let mut document = svg::Document::new().set(
"viewBox", "viewBox",
( (0, 0, value.width * block_size, value.height * block_size),
0,
0,
value.width as u32 * block_size,
value.height as u32 * block_size,
),
); );
for x in 0..value.width { for x in 0..value.width {
for y in 0..value.height { for y in 0..value.height {