[PATCH] tiff: fix PLANARCONFIG_SEPARATE and PHOTOMETRIC_{PALETTE, MINIS{BLACK, WHITE}} with alpha
Yuriy Kaminskiy <[email protected]> Tue, 23 Dec 2014 17:01:03 +0300
| Newsgroups | gmane.comp.video.graphicsmagick.bugs |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format.
--------------000606070403030102040603
Content-Type: text/plain; charset=KOI8-R
Content-Transfer-Encoding: 7bit
Combination of PLANARCONFIG_SEPARATE and
PHOTOMETRIC_{PALETTE,MINIS{BLACK,WHITE},LOGLUV} with alpha is not properly handled.
I've added support for palette (untested) and grayscale (sample file attached
[source: xemacs nextstep support files]; contains min-is-black and RGB variants
of same image), and properly error out [better than silently producing garbage]
in case of LOGLUV (it would require adding CIE{X,Z}Quantum).
--------------000606070403030102040603
Content-Type: text/x-diff;
name="GraphicsMagick-1.3.20-tiff-planarconfig-separate-and-gray.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename*0="GraphicsMagick-1.3.20-tiff-planarconfig-separate-and-gray.pa";
filename*1="tch"
--- GraphicsMagick-1.3.20/coders/tiff.c.orig 2014-08-17 00:33:23.000000000 +0400
+++ GraphicsMagick-1.3.20/coders/tiff.c 2014-12-23 15:00:39.912594216 +0300
@@ -1038,6 +1038,13 @@
}
case PHOTOMETRIC_LOGLUV:
{
+ if (planar_config == PLANARCONFIG_SEPARATE)
+ {
+ /* requires adding CIEXQuantum and CIEZQuantum */
+ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
+ "TIFF Warning: PHOTOMETRIC=LOGLUV and PLANARCONFIG=SEPARATE is unsupported.");
+ break;
+ }
*quantum_type=CIEXYZQuantum;
*quantum_samples=3;
break;
@@ -1047,8 +1054,24 @@
{
if (image->matte)
{
- *quantum_type=GrayAlphaQuantum;
- *quantum_samples=2;
+ if (planar_config == PLANARCONFIG_SEPARATE)
+ {
+ switch(plane)
+ {
+ case 0:
+ *quantum_type=GrayQuantum;
+ break;
+ case 1:
+ *quantum_type=AlphaQuantum;
+ break;
+ }
+ *quantum_samples=1;
+ }
+ else
+ {
+ *quantum_type=GrayAlphaQuantum;
+ *quantum_samples=2;
+ }
}
else
{
@@ -1063,8 +1086,24 @@
{
if (image->matte)
{
- *quantum_type=IndexAlphaQuantum;
- *quantum_samples=2;
+ if (planar_config == PLANARCONFIG_SEPARATE)
+ {
+ switch(plane)
+ {
+ case 0:
+ *quantum_type=IndexQuantum;
+ break;
+ case 1:
+ *quantum_type=AlphaQuantum;
+ break;
+ }
+ *quantum_samples=1;
+ }
+ else
+ {
+ *quantum_type=IndexAlphaQuantum;
+ *quantum_samples=2;
+ }
}
else
{
--------------000606070403030102040603
Content-Type: image/tiff;
name="cfile.tiff"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="cfile.tiff"
TU0AKgAABIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVVVVVVVVVVVUAB////////////
/wAB/////////////wAB9MV9UdVdFdV//wAB/////////////wAB9VF11FUX/////wAB////
/////////wAB9VdVUVdUVVFVfwAB/////////////wAB/9RRV1f//19//wAB//////+AA///
/wAB9FFRVfgeQD1X/wAB/////+B/0A///wAB9dXVX4H18A///wAB/////wP/8Af//wAB8VV3
/AfUfAtX/wAB////+Av//V///wAB8dUc9A/VX/3//wAB////8A///////wAB9UVV8A/1F1NR
fwAB////8A///////wAB9UVV8A///////wAB////8Af//////wAB//9d8AP1H////wAB////
9AH///P//wAB9Rf/+AD1F8ff/wAB//+AvAA//wv//wAB8F8APwAL/C///wAB//8AP8AAAL//
/wAB9X8AP/AAAf///wAB//+Av/0AH////wAB/////////RVf/wAB/////////////wAB81FR
VRV11dUV/wAB/////////////wAB+qqqqqqqqqqqrwAB/////////////wAB9P//////////
/wAB/////////////wAB/////////////wAB/////////////wABAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAD/////////////8AD/////////////+AD/////////////+QD////
/////////+QD/////////////+QD/////////////+QD/////////////+QD////////////
/+QD/////////////+QD/////////////+QD/////////////+QD/////////////+QD////
/////////+QD/////////////+QD/////////////+QD/////////////+QD////////////
/+QD/////////////+QD/////////////+QD/////////////+QD/////////////+QD////
/////////+QD/////////////+QD/////////////+QD/////////////+QD////////////
/+QD/////////////+QD/////////////+QD/////////////+QD/////////////+QD////
/////////+QD/////////////+QD/////////////+QD/////////////+QD////////////
/+QD/////////////+QD/////////////+QD/////////////+QD/////////////+QD////
/////////+QD/////////////+QD/////////////+QAqqqqqqqqqqqqqqQAFVVVVVVVVVVV
VVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABADAAAAEBAAMAAAABADAAAAEC
AAMAAAACAAIAAgEDAAMAAAABAAEAAAEGAAMAAAABAAEAAAERAAQAAAACAAAFKgEVAAMAAAAB
AAIAAAEXAAQAAAACAAAFMgEaAAUAAAABAAAFOgEbAAUAAAABAAAFQgEcAAMAAAABAAIAAAEo
AAMAAAABAAIAAAFSAAMAAAABAAEAAAAACnQAAAAIAAACSAAAAkAAAAJAAAr8gAAAJxAACvyA
AAAnEIAAIFA4JBYNB4RCYVC4ZDYdD4hEYlE4pFYtF4xGY1G4kVY8/48VZBH5DI5FJZRJJVJ5
XJpdKZZMZfLZhM5lNZxNJ1N53NpdGJK/6FQ6JRaNR6RSaVS6ZTadT6hUaPA3/A1VFKDUq1W6
5Xa9X6ZVKtAyrEKzRg3AqraqJVLSAH/b7jbKPcrtarddKFd7hfLncKJcrzfbVcsDhcRhMBYK
FYoFV4FZYfZ8Zlctl8xUccAMgAMlDsph8Vf9Jg9JotPQ79pr9gsTqczsaHm87n4bodlud1u8
1eMfZLNH6RrdfhtVxeRo9ZyaLxLhy9HzrX0eZfrDvs5wMnwt53e936LtO1oO5UtXzOhpONe+
Zu+tdb1YPFkeDIvB3lV+X+gAis3+PwIli/b+n+QIIlof5BAgWsCwO+6lvmzz6qS1zqOe6rsP
VDDFqM/JVQSCD/QU/zKQ8lw/wCf8UQEPoIlgf49ggV0KQ2rkItshjcQerUTD+B5Xv2B8Xx0p
KSxiVsYAhJEYxmPIIlY8Ebwm4bXtQ972QtDUOKLEw9geVZ/j4B8oSJK6ijsCJUn/NE1TQVE1
zTKLsNrKcdq0PQHTUPIHFOf89z6yw4ggUh/0FQlBFGf45giUqXN3KTtvsqcauk1CoDoBpQzW
B1E0xTUyte0ykDeCNNUQf44AiUR/xNK0qq1SDyUlOykxMOAGk4f45AaT5/jeBhNVY/TYpzWb
eVi27yvDV8sS06bYWepCSjUBhKH+NoGEuf41gYSqmulMyoSIr9kRzZVaKMM4Fkgf4zAWR123
ef4ygWRt0PvcqF1BLL03A+KiDABRDH+L4FELgmDH+MQFESqLzyzV0Ly3h9nOviU6Uje6kiwB
I9n+LgEkAf4t5DkeS40718oVfdnX7GqkCoBA7H/mOZ5rmmZZRlM5vHZNjZ0f4oAOOJ/iYA42
H+Juj6Tpdx6Ar2VITpyuzM9aiiQAwzH+JIDDPreun+IwDDGf4jgMMlv1DZmn6ihGpzskohAK
Lx/7lughgKL5/7xvW3ssqlH54+mMyo5T2srEwfAILB/h2AiRB6Agrn/yPJ8cKkacNiCj8Vxk
ib9CHBQlwjMxMIAACif4ggAKR/9P1NWqOHABigf4bAGJx/hyAnWhv2nbdx4Hcst2/c9n2vYt
ztqDyIzeKqOHQACZygAdyHvq+p3Po+mpgZAEJJ/hoAYln+Gfv/L84YgEI5//V9nkqb8Xye98
H4cDi+e3Nn7KhsAH2P9f+/520AoAFRBeAIIo/4DwJBcAIIg/wWgBCFBCCUFIJwRgvBWBsD4F
wKgQsJD6O3lkGZYuEo4LwABAgVCmFcKoUQuhYVsFgAYVArACD8f4KgAg+hzDuHsPIdRAh9Da
HEM4VOgeU6JHC+lzuIP0CgAAOR/xQilFSEBYCSgoACDsf4JwAg6i7F+MMYItRciQnJ/Dg1ZN
PjYs1lzmyuwjILGeNsdTZRyII80+LFDpRvZapSPba1KnHX4y8p8eCyRNjtItncaXRxrKQiaS
R+pJofkrFeS8mZKSbktJyTEnpNSdlFJ+UcoZSSnfsbOJSdZGStkadNjEkD4MSldLWOMq3SS2
l0ZmRBkZFS7mBLeR0S2Vy/mDMc3sw0JvOmYhmZstJnrPmjNOZ01ZoTWmlNiak15uSwfyRIzs
4Sxm/nIdmcs4pzzjnNOudE7J1TtnhO+eU6Z6TunrPGesxCsHjM/P2fk/41T+oDQCR9AqC0Eo
NQmhFC6B0NoPQ4jlEaJUTopRWi1F6MUZo0RYgIAAAA4BAAADAAAAAQAwAAABAQADAAAAAQAw
AAABAgADAAAABAAACyIBAwADAAAAAQAFAAABBgADAAAAAQACAAABEQAEAAAAAQAABUoBFQAD
AAAAAQAEAAABFgAEAAAAAQAAAKoBFwAEAAAAAQAABSkBGgAFAAAAAQAACyoBGwAFAAAAAQAA
CzIBHAADAAAAAQABAAABKAADAAAAAQACAAABUgADAAAAAQABAAAAAAAAAAgACAAIAAgACvyA
AAAnEAAK/IAAACcQ
--------------000606070403030102040603
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
------------------------------------------------------------------------------
Dive into the World of Parallel Programming! The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net
--------------000606070403030102040603
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
Graphicsmagick-bugs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/graphicsmagick-bugs
--------------000606070403030102040603--