【发布时间】:2012-10-02 17:32:43
【问题描述】:
我需要手动查找新图像的 DPI。
$input_width = 361;
$input_height = 413;
$input_dpi_x = 72;
$input_dpi_y = 72;
$output_width = 800;
$output_height = $input_height * $output_width / $input_width;
$output_dpi_x = ceil(($input_dpi_x / $input_width) * $output_width);
$output_dpi_y = ceil(($input_dpi_y / $input_height) * $output_y_res);
echo "Outpud_dpi_x = " . $output_dpi_x;
//Outpud_dpi_x = 160
为什么当我调整图像大小时我得到 802 而不是 800?
我必须使用 DPI 不要问为什么
【问题讨论】:
-
我会在除法之前执行乘法运算以避免精度损失,但是对于您所说的数字,这是一个相当大的舍入误差
-
你能告诉我你的意思吗?我不是一个匹配的人。
-
您的标题要求保持图像的纵横比,但您的问题是关于计算 DPI。是否有不同的方式来表达问题,以便我们提供解决方案?
-
如果您使用
round()而不是ceil()会怎样? -
这是某种打印格式吗?我不知道任何允许不同 dpi 的高度和宽度的图像格式,它们应该是相同的......对于屏幕上的图像是 dpi 完全无关的,每边只有 # 个像素。
标签: php image-resizing aspect-ratio