mirror of
https://github.com/zxing/zxing.git
synced 2025-01-13 04:07:27 -08:00
Added rounding code to the C++ port as well.
git-svn-id: https://zxing.googlecode.com/svn/trunk@1565 59b500cc-1b3d-0410-9834-0bbf25fbcc57
This commit is contained in:
parent
226bf1a1a6
commit
d26cfc7fd1
|
@ -52,7 +52,9 @@ unsigned char* MagickBitmapSource::getRow(int y, unsigned char* row) {
|
|||
for (int x = 0; x < width; x++) {
|
||||
const PixelPacket* p = pixel_cache + y * width + x;
|
||||
// We assume 16 bit values here
|
||||
row[x] = (unsigned char)((306 * ((int)p->red >> 8) + 601 * ((int)p->green >> 8) + 117 * ((int)p->blue >> 8)) >> 10);
|
||||
// 0x200 = 1<<9, half an lsb of the result to force rounding
|
||||
row[x] = (unsigned char)((306 * ((int)p->red >> 8) + 601 * ((int)p->green >> 8) +
|
||||
117 * ((int)p->blue >> 8) + 0x200) >> 10);
|
||||
}
|
||||
return row;
|
||||
|
||||
|
@ -67,7 +69,8 @@ unsigned char* MagickBitmapSource::getMatrix() {
|
|||
const Magick::PixelPacket* p = pixel_cache;
|
||||
for (int y = 0; y < height; y++) {
|
||||
for (int x = 0; x < width; x++) {
|
||||
*m = (unsigned char)((306 * ((int)p->red >> 8) + 601 * ((int)p->green >> 8) + 117 * ((int)p->blue >> 8)) >> 10);
|
||||
*m = (unsigned char)((306 * ((int)p->red >> 8) + 601 * ((int)p->green >> 8) +
|
||||
117 * ((int)p->blue >> 8) + 0x200) >> 10);
|
||||
m++;
|
||||
p++;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue