switch (job->device.id) {
#ifdef HAVE_GD_PNG
case FORMAT_PNG:
- for (y = 0; y < height; y++) {
- for (x = 0; x < width; x++) {
- color = *data++;
- /* gd's max alpha is 127 */
- /* so right-shift 25 to lose lsb of alpha */
- alpha = (color >> 25) & 0x7f;
- im->tpixels[y][x] = (color & 0xffffff) | ((0x7f - alpha) << 24);
- }
- }
+ if (data) {
+ for (y = 0; y < height; y++) {
+ for (x = 0; x < width; x++) {
+ color = *data++;
+ /* gd's max alpha is 127 */
+ /* so right-shift 25 to lose lsb of alpha */
+ alpha = (color >> 25) & 0x7f;
+ im->tpixels[y][x] = (color & 0xffffff) | ((0x7f - alpha) << 24);
+ }
+ }
+ }
break;
#endif
default:
gdImageColorTransparent(im, TRANSPARENT);
gdImageAlphaBlending(im, FALSE);
- for (y = 0; y < height; y++) {
- for (x = 0; x < width; x++) {
- color = *data++;
- /* gd's max alpha is 127 */
- /* so right-shift 25 to lose lsb of alpha */
- if ((alpha = (color >> 25) & 0x7f) >= 0x20)
- /* if not > 75% transparent */
- im->tpixels[y][x] = (color & 0xffffff) | ((0x7f - alpha) << 24);
- else
- im->tpixels[y][x] = TRANSPARENT;
- }
- }
+ if (data) {
+ for (y = 0; y < height; y++) {
+ for (x = 0; x < width; x++) {
+ color = *data++;
+ /* gd's max alpha is 127 */
+ /* so right-shift 25 to lose lsb of alpha */
+ if ((alpha = (color >> 25) & 0x7f) >= 0x20)
+ /* if not > 75% transparent */
+ im->tpixels[y][x] = (color & 0xffffff) | ((0x7f - alpha) << 24);
+ else
+ im->tpixels[y][x] = TRANSPARENT;
+ }
+ }
+ }
break;
}