1

我想调整上传到服务器但不裁剪的图像大小,以便向它们显示完整版本的图像。

基本想法是我只想向用户展示完整尺寸的图像(调整大小)并让他们下载原始文件。

假设有人上传了高分辨率且大小为 10MB 的图像,那么如果我将整个图像加载到画廊或其他东西中,这将需要一些时间。这就是为什么我只需要将 iamge 调整为小尺寸,以显示所有内容并缩小尺寸。

我正在使用 imagick 但不知道如何为此做数学,只知道裁剪。

我知道我可以减少图像的宽度并让它自动调整高度,但仍然坚持我需要减少多少。

如果有人能解释一下,我将不胜感激。

DropBox 使用它可以让您上传任何尺寸的图像,但在图库中它显示的图像分辨率较低且尺寸较小。但请注意:图像的任何部分都不会被裁剪。

编辑:例如,如果用户上传尺寸为 2496 × 1404 且大小为 3MB 的图像。我需要尺寸较小的图像,例如 1280 x 960,尺寸小于 1MB,以便用于图库。

4

1 回答 1

2

imagemagick 的文档:
http ://www.imagemagick.org/Usage/resize/#thumbnail


或者,如果您在代码中使用它:

$width = 100; 
$height = 300; 

$ratio = $width / $height; // get ratio by dividing width by height

$newWidth = 200; // a random new width
$newHeight = $newWidth / $ratio; // devide by ratio to get new width (600 in this case)
// OR, if you have a new height:
$newHeight = 200;
$newWidth = $newHeight * $ratio; // multiply instead of devide

round()如果你想制作它的实际像素,别忘了最后使用(我想你会的)


回到这里,我想到了另一种解决方案(实际上更容易):

$width = 100; 
$height = 300; 

$newWidth = 200;
$newHeight = ($newWidth/$width) * $height;

$newWidth/$width部分计算宽度发生了多少变化(在我的示例中,它将导致2),因此高度以相同的比例发生变化。如果你想$newWidth根据身高来做同样的工作。

于 2013-09-29T09:55:16.510 回答