http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=22586 * dropped disable-matlab-test.patch * added ImageMagick-uninitialized-memory.patch OBS-URL: https://build.opensuse.org/package/show/graphics/ImageMagick?expand=0&rev=137
166 lines
4.9 KiB
Diff
166 lines
4.9 KiB
Diff
http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=22586
|
|
Index: ImageMagick-6.7.8-8/coders/mat.c
|
|
===================================================================
|
|
--- ImageMagick-6.7.8-8.orig/coders/mat.c
|
|
+++ ImageMagick-6.7.8-8/coders/mat.c
|
|
@@ -897,7 +897,7 @@ NEXT_FRAME:
|
|
{
|
|
for (i = 0; i < (ssize_t) MATLAB_HDR.SizeY; i++)
|
|
{
|
|
- q=QueueAuthenticPixels(image,0,MATLAB_HDR.SizeY-i-1,image->columns,1,exception);
|
|
+ q=GetAuthenticPixels(image,0,MATLAB_HDR.SizeY-i-1,image->columns,1,exception);
|
|
if (q == (PixelPacket *)NULL)
|
|
{
|
|
if (logging) (void)LogMagickEvent(CoderEvent,GetMagickModule(),
|
|
Index: ImageMagick-6.7.8-8/magick/quantum-import.c
|
|
===================================================================
|
|
--- ImageMagick-6.7.8-8.orig/magick/quantum-import.c
|
|
+++ ImageMagick-6.7.8-8/magick/quantum-import.c
|
|
@@ -1032,62 +1032,86 @@ static void ImportBlueQuantum(const Imag
|
|
|
|
switch (quantum_info->depth)
|
|
{
|
|
- case 10:
|
|
+ case 8:
|
|
{
|
|
- Quantum
|
|
- cbcr[4];
|
|
+ unsigned char
|
|
+ pixel;
|
|
|
|
- pixel=0;
|
|
- if (quantum_info->pack == MagickFalse)
|
|
- {
|
|
- register ssize_t
|
|
- i;
|
|
+ for (x=0; x < (ssize_t) number_pixels; x++)
|
|
+ {
|
|
+ p=PushCharPixel(p,&pixel);
|
|
+ SetPixelBlue(q,ScaleCharToQuantum(pixel));
|
|
+ p+=quantum_info->pad;
|
|
+ q++;
|
|
+ }
|
|
+ break;
|
|
+ }
|
|
+ case 16:
|
|
+ {
|
|
+ unsigned short
|
|
+ pixel;
|
|
|
|
- size_t
|
|
- quantum;
|
|
+ if (quantum_info->format == FloatingPointQuantumFormat)
|
|
+ {
|
|
+ for (x=0; x < (ssize_t) number_pixels; x++)
|
|
+ {
|
|
+ p=PushShortPixel(quantum_info->endian,p,&pixel);
|
|
+ SetPixelBlue(q,ClampToQuantum((MagickRealType)
|
|
+ QuantumRange*HalfToSinglePrecision(pixel)));
|
|
+ p+=quantum_info->pad;
|
|
+ q++;
|
|
+ }
|
|
+ break;
|
|
+ }
|
|
+ for (x=0; x < (ssize_t) number_pixels; x++)
|
|
+ {
|
|
+ p=PushShortPixel(quantum_info->endian,p,&pixel);
|
|
+ SetPixelBlue(q,ScaleShortToQuantum(pixel));
|
|
+ p+=quantum_info->pad;
|
|
+ q++;
|
|
+ }
|
|
+ break;
|
|
+ }
|
|
+ case 32:
|
|
+ {
|
|
+ unsigned int
|
|
+ pixel;
|
|
|
|
- ssize_t
|
|
- n;
|
|
+ if (quantum_info->format == FloatingPointQuantumFormat)
|
|
+ {
|
|
+ float
|
|
+ pixel;
|
|
|
|
- n=0;
|
|
- quantum=0;
|
|
- for (x=0; x < (ssize_t) number_pixels; x+=2)
|
|
+ for (x=0; x < (ssize_t) number_pixels; x++)
|
|
{
|
|
- for (i=0; i < 4; i++)
|
|
- {
|
|
- switch (n % 3)
|
|
- {
|
|
- case 0:
|
|
- {
|
|
- p=PushLongPixel(quantum_info->endian,p,&pixel);
|
|
- quantum=(size_t) (ScaleShortToQuantum((unsigned short)
|
|
- (((pixel >> 22) & 0x3ff) << 6)));
|
|
- break;
|
|
- }
|
|
- case 1:
|
|
- {
|
|
- quantum=(size_t) (ScaleShortToQuantum((unsigned short)
|
|
- (((pixel >> 12) & 0x3ff) << 6)));
|
|
- break;
|
|
- }
|
|
- case 2:
|
|
- {
|
|
- quantum=(size_t) (ScaleShortToQuantum((unsigned short)
|
|
- (((pixel >> 2) & 0x3ff) << 6)));
|
|
- break;
|
|
- }
|
|
- }
|
|
- cbcr[i]=(Quantum) (quantum);
|
|
- n++;
|
|
- }
|
|
+ p=PushFloatPixel(quantum_info,p,&pixel);
|
|
+ SetPixelBlue(q,ClampToQuantum(pixel));
|
|
p+=quantum_info->pad;
|
|
- SetPixelRed(q,cbcr[1]);
|
|
- SetPixelGreen(q,cbcr[0]);
|
|
- SetPixelBlue(q,cbcr[2]);
|
|
q++;
|
|
- SetPixelRed(q,cbcr[3]);
|
|
- SetPixelGreen(q,cbcr[0]);
|
|
- SetPixelBlue(q,cbcr[2]);
|
|
+ }
|
|
+ break;
|
|
+ }
|
|
+ for (x=0; x < (ssize_t) number_pixels; x++)
|
|
+ {
|
|
+ p=PushLongPixel(quantum_info->endian,p,&pixel);
|
|
+ SetPixelBlue(q,ScaleLongToQuantum(pixel));
|
|
+ p+=quantum_info->pad;
|
|
+ q++;
|
|
+ }
|
|
+ break;
|
|
+ }
|
|
+ case 64:
|
|
+ {
|
|
+ if (quantum_info->format == FloatingPointQuantumFormat)
|
|
+ {
|
|
+ double
|
|
+ pixel;
|
|
+
|
|
+ for (x=0; x < (ssize_t) number_pixels; x++)
|
|
+ {
|
|
+ p=PushDoublePixel(quantum_info,p,&pixel);
|
|
+ SetPixelBlue(q,ClampToQuantum(pixel));
|
|
+ p+=quantum_info->pad;
|
|
q++;
|
|
}
|
|
break;
|
|
@@ -1102,9 +1126,8 @@ static void ImportBlueQuantum(const Imag
|
|
for (x=0; x < (ssize_t) number_pixels; x++)
|
|
{
|
|
p=PushQuantumPixel(quantum_info,p,&pixel);
|
|
- SetPixelRed(q,ScaleAnyToQuantum(pixel,range));
|
|
- p=PushQuantumPixel(quantum_info,p,&pixel);
|
|
- SetPixelGreen(q,ScaleAnyToQuantum(pixel,range));
|
|
+ SetPixelBlue(q,ScaleAnyToQuantum(pixel,range));
|
|
+ p+=quantum_info->pad;
|
|
q++;
|
|
}
|
|
break;
|