chr*_*rth 2 perl imagemagick perlmagick
我正在使用ImageMagick for Perl
use Image::Magick;
Run Code Online (Sandbox Code Playgroud)
我编写了功能代码来执行所有必要的任务,如调整大小,缩略图,读取尺寸,裁剪,裁剪到中心.
我确实要求所有照片都是风景照片,所以我要丢弃任何高度大于或等于宽度的图像.
我正在努力解决的问题是在调整大小之前裁剪.照片需要4:3的宽高比.有些照片采用新的16:9格式,或者在发送到服务器之前可能已被裁剪,这会导致屏幕显示偏斜.在我调整大小之前,我想裁剪图像,使其最接近4:3.例如,800/600即可,但802/600会将中心裁剪为800/600.
我将调整所有照片的大小,不管裁剪的大小到800/600的最大存储图像,但这是仙女无关紧要.由于我可以提前读取高度和宽度尺寸,因此可能有一种算法可用于计算最接近的匹配.我真的只需要帮助获取要裁剪的新尺寸,而不是ImageMagick,除非ImageMagick中有一个可以为我做这个的功能.
但是,我没有成功找到一个.
为我工作:
my $image_width = 800; # play with this when testing
my $image_height = 600;
my $target_aspect = 4 / 3;
my $current_aspect = $image_width / $image_height;
given ($current_aspect <=> $target_aspect) {
when (1) { $image_width = int($image_height * $target_aspect); }
when (-1) { $image_height = int($image_width / $target_aspect); }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1137 次 |
| 最近记录: |