打印

[讨论] crass将tlg转换至32位bmp有色差问题

目前已知天神乱漫有问题

其他至少要合成都没问题,因为基本我都会去合成
引用:
        if (tlg5_header->colors == 4) {
                BYTE *b = out;
                DWORD pixels = tlg5_header->width * tlg5_header->height;
                for (i = 0; i < pixels; ++i) {
                        b[0] = b[0] * b[3] / 255 + (255 - b[3]);
                        b[1] = b[1] * b[3] / 255 + (255 - b[3]);
                        b[2] = b[2] * b[3] / 255 + (255 - b[3]);
                        b += 4;
                }
        }
引用:
        BYTE *b = out;
        DWORD pixels = tlg6_header->width * tlg6_header->height;
        for (i = 0; i < pixels; ++i) {
                b[0] = b[0] * b[3] / 255 + (255 - b[3]);
                b[1] = b[1] * b[3] / 255 + (255 - b[3]);
                b[2] = b[2] * b[3] / 255 + (255 - b[3]);
                b += 4;
        }
看代码好像没问题

完整的blenging应该是

                for (i = 0; i < pixels; ++i) {
                        b[0] = ( b[0] * b[3] + background * ( 255 - b[3] ) ) / 255;
                        b[1] = ( b[0] * b[3] + background * ( 255 - b[3] ) ) / 255;
                        b[2] = ( b[0] * b[3] + background * ( 255 - b[3] ) ) / 255;
                        b += 4;
                }

汉公设置blending背景色为白色,也就是说background是0xFF,即255,化简就是上面的

[ 本帖最后由 haibara 于 2009-11-03 01:23 编辑 ]
sfsuvival说的是边缘锯齿,而我说的天神乱漫是指合成上的问题

至于sfsuvival说的由于汉公只使用确定的白色,而非原图象符合平滑色,所以一定会有边缘锯齿

准确地说汉公保留了alpha,使得边缘锯齿可见,如果忽略alpha,只看白色背景的话,是无边缘锯齿的,而正常的alpha blending的结果也是不保存alpha的,比方ExtractData

目前可能有边缘锯齿的cui:
AZSystem
ExHIBIT
FVP
kirikiri2
LiosGame
NEJII
SOFTPAL ADV SYSTEM
System4

CIRCUS?
Leaf?
RioShiina?
ags?
IPAC?

[ 本帖最后由 haibara 于 2010-07-01 23:16 编辑 ]
引用:
原帖由 sfsuvival 于 2009-11-08 03:21 发表


看了你的说明我更加不明白汉公为什么要为带alpha的图做alpha blending
alpha blending是为了输出移除了alpha的图而做的处理
既然保留alpha,为什么要做alpha blending?
这会破坏原图...
这样做是否有其它目的 ...
很简单,很多小白要求的

在windows下,32位bmp不象32位png那样是直接白色blending,是直接显示24位的内容,很难看,因为通常会搞平滑内容
引用:
原帖由 finalord 于 2009-11-08 16:22 发表
ws是什么软件?
westside
查看积分策略说明

快速回复主题

选项

[完成后可按 Ctrl+Enter 发布]  预览帖子  恢复数据  清空内容

当前时区 GMT+8, 现在时间是 2024-05-06 02:54

Processed in 0.017771 second(s), 6 queries.