Google 網路論壇不再支援新的 Usenet 貼文或訂閱項目,但過往內容仍可供查看。

[9fans] page/png bug

瀏覽次數:2 次
跳到第一則未讀訊息

Federico G. Benavento

未讀,
2006年7月8日 中午12:23:352006/7/8
收件者:
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

未讀,
2006年7月9日 下午2:55:342006/7/9
收件者:
Would you mind describing the bug beyond
saying "look at this file"?

Russ

Federico G. Benavento

未讀,
2006年7月9日 下午3:12:342006/7/9
收件者:
> 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

未讀,
2006年7月9日 晚上7:31:262006/7/9
收件者:
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 則新訊息