63 if((
prec =
qFloor (image->comps[0].prec)) > 16)
65 fprintf(
stderr,
"%s:%d:imagetopnm\n\tprecision %d is larger than 16"
70 ncomp = image->numcomps;
74 && image->comps[0].dx == image->comps[1].dx
75 && image->comps[1].dx == image->comps[2].dx
76 && image->comps[0].dy == image->comps[1].dy
77 && image->comps[1].dy == image->comps[2].dy
78 && image->comps[0].prec == image->comps[1].prec
79 && image->comps[1].prec == image->comps[2].prec
88 red = image->comps[0].data;
92 green = image->comps[1].data;
93 blue = image->comps[2].data;
99 const char *
tt = (
triple?
"RGB_ALPHA":
"GRAYSCALE_ALPHA");
102 "P7\n# OpenJPEG-%s\nWIDTH %d\nHEIGHT %d\nDEPTH %d\n"
103 "MAXVAL %d\nTUPLTYPE %s\nENDHDR\n",
114 1 << (image->comps[
ncomp - 1].prec - 1) : 0);
119 "P6\n# OpenJPEG-%s\n%d %d\n%d\n",
128 adjustR = (image->comps[0].sgnd ? 1 << (image->comps[0].prec - 1) : 0);
132 adjustG = (image->comps[1].sgnd ? 1 << (image->comps[1].prec - 1) : 0);
133 adjustB = (image->comps[2].sgnd ? 1 << (image->comps[2].prec - 1) : 0);
142 if(
v > 65535)
v = 65535;
else if(
v < 0)
v = 0;
146 static_cast<unsigned char> (
v>>8),
147 static_cast<unsigned char> (
v));
154 if(
v > 65535)
v = 65535;
else if(
v < 0)
v = 0;
158 static_cast<unsigned char> (
v>>8),
159 static_cast<unsigned char> (
v));
164 if(
v > 65535)
v = 65535;
else if(
v < 0)
v = 0;
168 static_cast<unsigned char> (
v>>8),
169 static_cast<unsigned char> (
v));
178 if(
v > 65535)
v = 65535;
else if(
v < 0)
v = 0;
182 static_cast<unsigned char> (
v>>8),
183 static_cast<unsigned char> (
v));
193 if(
v > 255)
v = 255;
else if(
v < 0)
v = 0;
197 static_cast<unsigned char> (
v));
203 if(
v > 255)
v = 255;
else if(
v < 0)
v = 0;
207 static_cast<unsigned char> (
v));
211 if(
v > 255)
v = 255;
else if(
v < 0)
v = 0;
215 static_cast<unsigned char> (
v));
222 if(
v > 255)
v = 255;
else if(
v < 0)
v = 0;
226 static_cast<unsigned char> (
v));
237 if (image->numcomps >
ncomp)
250 "P5\n#OpenJPEG-%s\n%d %d\n%d\n",
260 (image->comps[
compno].sgnd ? 1 << (image->comps[
compno].prec - 1) : 0);
267 if(
v > 65535)
v = 65535;
else if(
v < 0)
v = 0;
271 static_cast<unsigned char> (
v>>8),
272 static_cast<unsigned char> (
v));
279 if(
v > 65535)
v = 65535;
else if(
v < 0)
v = 0;
283 static_cast<unsigned char> (
v>>8),
284 static_cast<unsigned char> (
v));
295 if(
v > 255)
v = 255;
else if(
v < 0)
v = 0;
299 static_cast<unsigned char> (
v));