PHP从url增加图像分辨率然后裁剪

时间:2017-03-21 11:12:15

标签: php

我有分辨率为720x1280的图像,我需要将它们存储在分辨率为800x1500的服务器上。 由于720x1280增加到1500高度,分辨率为844x1500,我还需要裁剪图像,从左侧和右侧移除22个像素。

现在我有了这个:

        var stringlist = new List<string> { "RGBI1red", "green", "RGBI1pink", "purple" };
        stringlist = stringlist.Select(x => x.Replace("RGBI1", "")).ToList();

        stringlist.ForEach(x => Console.WriteLine(x));

-->
   red
   green
   pink
   purple

但问题是图像没有被裁剪,左右两侧22像素都没有被删除。

有没有办法做到这一点,首先从网址提高图像分辨率然后裁剪?

2 个答案:

答案 0 :(得分:1)

Google搜索php image crop显示the secret

$rect = [22, 0, 800, 1500]
$thumb = imagecrop($thumb, $rect)

答案 1 :(得分:0)

在这一行:

imagecopyresampled($thumb, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

您只需将原始图像缩放到新尺寸即可。 正如documentation所说:

  

如果源和目标坐标以及宽度和高度不同,将执行适当的图像片段拉伸或收缩。

您需要设置:

$shiftX = 22*(1280/1500); // consider passing variables rather than constant values
$scaledWidth = 720-$shiftX*2;
imagecopyresampled($thumb, $img, 0, 0, $shiftX, 0, $new_width, $new_height, $scaledWidth, $height);

,它会截取源图像所需的(比例)矩形,以将其粘贴到目标图片中。