图片处理实用指南

网页宽200像素,截图却有400像素?分清CSS尺寸与截图输出比例

网页元素宽200个CSS像素,截图文件可以宽400个像素,页面布局仍没有变。先分清网页几何尺寸与截图工具的输出比例,再决定交付文件;不要仅凭文件宽度翻倍就认定图片被拉伸。本文提供一个可下载、可重复的最小样本。

旧式游戏显示屏上的像素文字与扫描线近景
配图:Senad Palic · Unsplash License像素显示的摄影配图,不是本文网页样本或截图实测文件。

先把问题解决

本例固定元素为200×100个CSS像素。在设备比例1、按设备像素截图时,PNG是200×100;比例2时是400×200;同一比例2环境选择CSS比例截图则回到200×100。这是指定浏览器和截图设置的对照,不是所有系统截图工具的通用公式。

先给“宽度”写上单位

DOM里的200、PNG文件里的400和文档中显示的宽度,描述的是三个不同对象。CSS像素用于网页排版;图片文件记录栅格宽高;插入文档后还可能按另一套显示尺寸缩放。三者没有必要相等。

MDN对devicePixelRatio的说明把它定义为设备像素与CSS像素的比例,并说明页面缩放可以改变该值,双指放大不改变它。因此,“页面显示100%”还不足以单独决定导出的像素数。截图程序也可以选择缩放或重新采样。

交接时记录三种尺寸
对象本例的记录它不能单独证明什么
网页元素200×100 CSS像素,含边框不能决定所有截图程序的输出宽高
实际PNG200×100或400×200像素不能说明插入文档后的显示大小
文档中的图按需要显示为200×100不能证明原图细节与文本仍可读

一个200×100色块,把字体和边框也放进去

练习包中的tile.html是本站原创测试页面。页面只有浅蓝矩形、深色边框、A/B两个标签和两行文字,没有远程图片、登录或业务信息。使用border-box,让指定宽高包括2像素边框,免得把盒模型差异误判成截图缩放。

先在浏览器打开HTML,再检查元素的边界宽高。如果你自己的页面有CSS transform、百分比尺寸或动画,先停掉这些变量;不要用一次有多个变化的截图判断密度问题。

本例矩形的样式

width:200px; height:100px; box-sizing:border-box; border:2px solid #0f172a; background:#dbeafe; font:16px/1.4 Arial,sans-serif;
完整HTML与三个参考PNG在练习包中;样式是教学输入,不是需要粘贴到本站工具的指令。

保持布局不变,只改一个截图设置

本次对照使用Edge的独立自动化浏览器环境:固定800×600视口,分别设置设备比例1和2;页面内容与元素尺寸相同。采集的是元素本身,不包含浏览器工具栏。比例2不是把第一张小图再次放大,而是重新渲染同一网页。

Playwright截图选项明确区分CSS和device输出比例。练习使用该选项建立可控对照;系统快捷键、扩展和网页截图服务可能有不同规则,必须另查它们的设置并读出结果文件尺寸。

三次采集,共用同一份HTML

  1. A

    设备比例1,device输出

    记录元素200×100,再保存device-1.png。

  2. B

    设备比例2,device输出

    元素仍200×100,保存device-2.png;预计像素宽高各翻倍。

  3. C

    设备比例2,css输出

    不改网页,把截图输出设为CSS比例,保存css-2.png。

结果要比较宽高、比例和画面内容

三个PNG的实际编码尺寸应与下表一致。宽和高都乘2,像素总数乘4:200×100=20000,400×200=80000。它不代表文件字节一定四倍,PNG压缩还取决于内容。

逐个打开原始下载文件,确认A在左、B在右,边框完整,文字没有被裁掉。用图片查看器的100%像素显示可比较栅格;为了视觉对照,把400×200放在200×100的显示框里也合理,但那是显示缩小,不能改写文件原尺寸。

受控样本的参考答案
文件记录的元素尺寸PNG编码尺寸像素数量
device-1.png200×100 CSS像素200×10020000
device-2.png200×100 CSS像素400×20080000
css-2.png200×100 CSS像素200×10020000

交付需要什么,就保留什么尺度

用于网页或文档里的小幅界面示意时,可以保留较高像素的原始截图,再明确显示尺寸;对方要求精确200×100文件时,应导出或缩放一份该尺寸副本。把原始捕获与交付副本分开命名,避免之后只能从缩小版反复放大。

如果需要裁掉多余区域,按原图与预览坐标的裁剪说明核对选区;如果手里只有低像素旧截图,按像素放大与细节的区别判断,不能把重新采样当成补回不存在的字形。

症状是元素边框也变宽,先查截图比例;症状是少了半行字,先查裁切与滚动范围;症状是图像宽高正确但文字糊,查原始来源、缩放路径和最终显示。改DPI标签、反复保存或只改文件名,都不能替代这些检查。

这张截图可以交付了吗?

  • 保留网页/来源版本和原始截图,不混用不同布局。
  • 分别写清元素CSS尺寸、PNG像素尺寸及预定显示大小。
  • 在实际接收文档或页面中打开,核对小字、边框和裁切。
  • 若目标尺寸不同,只从原始捕获生成一份交付副本。

常见问题

设备比例2就一定比比例1清晰吗?

不能这样保证。高密度重新渲染的文字可能保留更多栅格信息;嵌入的低分辨率图片、页面本身的模糊或后续压缩不会因此自动修好。按最终显示尺寸读实际内容,而不是只比像素数字。

参考资料与延伸阅读

继续阅读