mirror of
https://github.com/ImageMagick/ImageMagick.git
synced 2026-05-31 11:18:42 +02:00
Fix issue where the size of a line is extended to 70 characters when writing a PBM image (#8346).
This commit is contained in:
@@ -1784,6 +1784,7 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
|
||||
*value;
|
||||
|
||||
MagickBooleanType
|
||||
added_newline,
|
||||
status;
|
||||
|
||||
MagickOffsetType
|
||||
@@ -2015,6 +2016,7 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
|
||||
(void) SetImageType(image,BilevelType,exception);
|
||||
extent=1;
|
||||
q=pixels;
|
||||
added_newline=MagickFalse;
|
||||
for (y=0; y < (ssize_t) image->rows; y++)
|
||||
{
|
||||
const Quantum
|
||||
@@ -2037,12 +2039,19 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
|
||||
*q++='\n';
|
||||
(void) WriteBlob(image,(size_t) (q-pixels),pixels);
|
||||
q=pixels;
|
||||
added_newline=MagickTrue;
|
||||
}
|
||||
}
|
||||
*q++=(unsigned char) (GetPixelLuma(image,p) >= ((double)
|
||||
QuantumRange/2.0) ? '0' : '1');
|
||||
p+=(ptrdiff_t) GetPixelChannels(image);
|
||||
}
|
||||
if (added_newline == MagickFalse)
|
||||
{
|
||||
*q++='\n';
|
||||
(void) WriteBlob(image,(size_t) (q-pixels),pixels);
|
||||
q=pixels;
|
||||
}
|
||||
if (image->previous == (Image *) NULL)
|
||||
{
|
||||
status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y,
|
||||
@@ -2074,6 +2083,7 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
|
||||
else
|
||||
(void) WriteBlobString(image,"4294967295\n");
|
||||
q=pixels;
|
||||
added_newline=MagickFalse;
|
||||
for (y=0; y < (ssize_t) image->rows; y++)
|
||||
{
|
||||
const Quantum
|
||||
@@ -2108,12 +2118,19 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
|
||||
*q++='\n';
|
||||
(void) WriteBlob(image,(size_t) (q-pixels),pixels);
|
||||
q=pixels;
|
||||
added_newline=MagickTrue;
|
||||
}
|
||||
}
|
||||
(void) memcpy((char *) q,buffer,extent);
|
||||
q+=(ptrdiff_t) extent;
|
||||
p+=(ptrdiff_t) GetPixelChannels(image);
|
||||
}
|
||||
if (added_newline == MagickFalse)
|
||||
{
|
||||
*q++='\n';
|
||||
(void) WriteBlob(image,(size_t) (q-pixels),pixels);
|
||||
q=pixels;
|
||||
}
|
||||
if (image->previous == (Image *) NULL)
|
||||
{
|
||||
status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y,
|
||||
@@ -2147,6 +2164,7 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
|
||||
else
|
||||
(void) WriteBlobString(image,"4294967295\n");
|
||||
q=pixels;
|
||||
added_newline=MagickFalse;
|
||||
for (y=0; y < (ssize_t) image->rows; y++)
|
||||
{
|
||||
const Quantum
|
||||
@@ -2186,12 +2204,19 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
|
||||
*q++='\n';
|
||||
(void) WriteBlob(image,(size_t) (q-pixels),pixels);
|
||||
q=pixels;
|
||||
added_newline=MagickTrue;
|
||||
}
|
||||
}
|
||||
(void) memcpy((char *) q,buffer,extent);
|
||||
q+=(ptrdiff_t) extent;
|
||||
p+=(ptrdiff_t) GetPixelChannels(image);
|
||||
}
|
||||
if (added_newline == MagickFalse)
|
||||
{
|
||||
*q++='\n';
|
||||
(void) WriteBlob(image,(size_t) (q-pixels),pixels);
|
||||
q=pixels;
|
||||
}
|
||||
if (image->previous == (Image *) NULL)
|
||||
{
|
||||
status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y,
|
||||
|
||||
Reference in New Issue
Block a user