让 AI 检查像素整数放大:三倍复制后,十字不该只剩一格粗

前天 3阅读

把一个小像素图放大,既可以复制原来的像素块,也可以重新画一个相似轮廓。两者看上去都像“更大的十字”,保留的信息却不同。让AI协助检查时,先明确目标是整数复制,再数像素和线宽,能避免把重新描细的图案误认为正确放大。

让 AI 检查像素整数放大:三倍复制后,十字不该只剩一格粗

AI生成概念插图:方块图案的放大意象;颜色、格数和形状不对应正文的二色三乘三算例,不作为像素逐格证据。

原图只有九个位置

原创练习使用三行三列。第一行依次为白、绿、白;第二行为绿、绿、绿;第三行为白、绿、白。绿色共五格,白色共四格,每格面积相同且完全不透明。我们要求横纵两个方向都放大三倍,并保持每个原像素的颜色,不添加中间色。

整数复制的规则是:每一个原格替换成三行三列的同色小块。原图三格宽变成九格宽,三格高变成九格高;每个原格贡献九个目标格。于是绿色为五乘九,得到四十五格;白色为四乘九,得到三十六格,合计八十一格。

用行记录检查十字的厚度

放大后最上面的三行都应是“白白白绿绿绿白白白”;中间三行全部为绿;最下面三行与上面三行相同。绿色横条高三格,竖条宽三格,中心重叠块为三乘三。行记录与颜色总数互相检查,比只让AI说“形状保持不变”更具体。

也可以从十字的两条带核算:横带有九乘三格,竖带有三乘九格,中心九格被重复计算一次,所以绿色是二十七加二十七减九,仍为四十五。两种算法一致,说明计数与逐格复制规则相容。

一个常见错图是在九乘九画布上只画一格粗的横线和竖线。它有九加九减一,也就是十七个绿格,另外六十四格为白。这张图仍像十字,却把笔画宽度保持为一格,改变了原格的复制关系;不能用四十五格的验收数字替它背书。

目标边长八格时,先承认约束冲突

如果目标改成八乘八,同时要求三个原格各变成同样宽的完整整数格块、恰好铺满又不裁切,就没有解。假设每个原格宽为整数k,整幅宽度必须是三乘k;八不能被三整除,因此无法满足这组条件。这是格子分配问题,不是提示词写得更强就能消除。

可讨论的取舍包括:先复制成六乘六,再在八乘八画布上留边;采用不等宽的二、三、三格分配;或先复制成九乘九再裁切。但这些方案分别改变了填满范围、各原格的均匀性或保留内容,必须注明所选方案,不能都叫作同一种等块整数放大。

留边时要另记新增边框像素的颜色,不能把原图白色数量直接当作整张画布的白色数量。裁切则应记录从哪一边删掉哪一行或列;即使最后仍是八乘八,也不代表原图九个位置都得到了同等保留。

浏览器提示不等于逐格验收

W3C的CSS图像规范把image-rendering定义为缩放时的处理提示。其pixelated规则在非整数目标尺寸下允许额外平滑步骤,不能简单解释成“任何尺寸都严格复制同样大小的方块”。这里的九乘九计数来自明确的整数复制规则,并未测量某款浏览器的最终截图。

可复制提示词:“将白绿白、绿绿绿、白绿白这个三乘三二色图横纵各复制三倍。按行输出九乘九结果,统计两色格数,并用横带加竖带减重叠复核。解释一格粗十字为什么错误;目标改为八乘八时,列出哪些约束无法同时成立及每种取舍。”

最终文件还要检查导出尺寸、调色板和显示缩放。若界面再次把九乘九图缩放到别的尺寸,屏幕外观可能不同;这不应反过来改变源文件的像素计数。把源图验证和展示检查各自记录,才便于定位问题发生在哪一步。

参考资料

W3C:CSS Images Module Level 3,image-rendering

文章版权声明:除非注明,否则均为云鹊BLOG原创文章,转载或复制请以超链接形式并注明出处。