Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[9fans] page/png bug

2 views
Skip to first unread message

Federico G. Benavento

unread,
Jul 8, 2006, 12:23:35 PM7/8/06
to
there is a bug with .png's in page(1) and png(1)

hget http://plan9.escet.urjc.es/iwp9/banner.png | page
hget http://plan9.escet.urjc.es/iwp9/banner.png | png
(note you wont see the bug if you're not using a 32bpp display)

this doesn't happen in abaco because it doesn't draw the image that png(1)
outputs directly on the screen, it first draws it on a RGB24 image
and then draws that image on the screen

// fd is png(1)'s stdout
i = readimage(display, fd, 1);
i2 = allocimage(display, i->r, RGB24, 0, DNofill);
draw(i2, i2->r, display->black, nil, ZP);
draw(i2, i2->r, i, nil, i->r.min);
freeimage(i);
// now i2 can be draw correctly on the screen

this is not a patch, because I don't know wether png(1) should output
an image that can be draw directly on the screen or page and png (without -d)
should use 2 images.

Russ Cox

unread,
Jul 9, 2006, 2:55:34 PM7/9/06
to
Would you mind describing the bug beyond
saying "look at this file"?

Russ

Federico G. Benavento

unread,
Jul 9, 2006, 3:12:34 PM7/9/06
to
> Would you mind describing the bug beyond
> saying "look at this file"?

it's not about minding or not, it's about having the ability
to do it.

well, I'll try anyway, the bug presents itself differently
with the problematic images, in the one I posted
IWP9's logo the background is white while the rest
appears violet, some other images look screwed
and nothing like what they should look like.

Federico G. Benavento

quan...@quanstro.net

unread,
Jul 9, 2006, 7:31:26 PM7/9/06
to
russ,

i posted a little bit on this. the problem is these two lines in png.c:

165 if(defaultcolor && screen->depth>8 && outchan==CMAP8)
166 outchan = RGB24;

if they are commented out (and i think if you replace RGB24 with RGBA32),
the image appears correctly. using the v flag also works (for the wrong reasons).

the problem is in the conversion from the ABGR rawimage to RGB24. i hadn't
narrowed down where the problem occurs.

- erik

0 new messages