From: cristy Date: Wed, 18 Mar 2015 18:22:55 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~1186 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6f3bd3936d6c9de52e361f094f7f9382b808059a;p=imagemagick --- diff --git a/coders/dpx.c b/coders/dpx.c index dbf8acccb..df692fe8e 100644 --- a/coders/dpx.c +++ b/coders/dpx.c @@ -441,8 +441,14 @@ static size_t GetBytesPerRow(const size_t columns, } case 16: { - bytes_per_row=2*(((size_t) samples_per_pixel*columns*bits_per_pixel+8)/ - 16); + if (pad == MagickFalse) + { + bytes_per_row=2*(((size_t) samples_per_pixel*columns*bits_per_pixel+ + 15)/16); + break; + } + bytes_per_row=4*(((size_t) samples_per_pixel*columns*bits_per_pixel+31)/ + 32); break; } case 32: @@ -1961,14 +1967,16 @@ static MagickBooleanType WriteDPXImage(const ImageInfo *image_info,Image *image, if ((horizontal_factor == 2) || (vertical_factor == 2)) quantum_type=CbYCrYQuantum; } - extent=GetBytesPerRow(image->columns,image->alpha_trait != UndefinedPixelTrait ? - 4UL : 3UL,image->depth,MagickTrue); + extent=GetBytesPerRow(image->columns, + image->alpha_trait != UndefinedPixelTrait ? 4UL : 3UL,image->depth, + dpx.image.image_element[0].packing == 0 ? MagickFalse : MagickTrue); if ((image_info->type != TrueColorType) && (image->alpha_trait == UndefinedPixelTrait) && (IsImageGray(image,exception) != MagickFalse)) { quantum_type=GrayQuantum; - extent=GetBytesPerRow(image->columns,1UL,image->depth,MagickTrue); + extent=GetBytesPerRow(image->columns,1UL,image->depth, + dpx.image.image_element[0].packing == 0 ? MagickFalse : MagickTrue); } pixels=GetQuantumPixels(quantum_info); for (y=0; y < (ssize_t) image->rows; y++)