当前位置: 首页 > 面试题库 >

PHP裁剪图像可固定宽度和高度而不会丢失尺寸比例

傅志用
2023-03-14
问题内容

我正在寻找创建尺寸为100px x 100px的缩略图。我看过很多文章解释了这些方法,但是如果要保持尺寸比例,大多数结果将是width!= height。

例如,我有一个450px x 350px的图像。我想裁剪到100px x 100px。如果我要保持该比率,我最终将得到100px x
77px。当我在行和列中列出这些图像时,这很难看。但是,没有尺寸比例的图像也会看起来很糟糕。

我看过flickr的图片,它们看起来很棒。例如:
缩略图:http://farm1.static.flickr.com/23/32608803_29470dfeeb_s.jpg
中等大小:http://farm1.static.flickr.com/23/32608803_29470dfeeb.jpg
大尺寸:HTTP:// farm1 .static.flickr.com / 23 /
32608803_29470dfeeb_b.jpg

ks


问题答案:

这仅通过使用图像的一部分作为缩略图(具有1:1的宽高比)(主要是图像的中心)来完成。如果仔细看,您可以在flickr缩略图中看到它。

因为您的问题中有“庄稼”,所以我不确定您是否还不知道,但是您想知道什么?

要使用裁剪,下面是一个示例:

//Your Image
$imgSrc = "image.jpg";

//getting the image dimensions
list($width, $height) = getimagesize($imgSrc);

//saving the image into memory (for manipulation with GD Library)
$myImage = imagecreatefromjpeg($imgSrc);

// calculating the part of the image to use for thumbnail
if ($width > $height) {
  $y = 0;
  $x = ($width - $height) / 2;
  $smallestSide = $height;
} else {
  $x = 0;
  $y = ($height - $width) / 2;
  $smallestSide = $width;
}

// copying the part into thumbnail
$thumbSize = 100;
$thumb = imagecreatetruecolor($thumbSize, $thumbSize);
imagecopyresampled($thumb, $myImage, 0, 0, $x, $y, $thumbSize, $thumbSize, $smallestSide, $smallestSide);

//final output
header('Content-type: image/jpeg');
imagejpeg($thumb);


 类似资料:
  • 我希望在纵横比中限制裁剪选择区域的最小宽度和高度,以便用户不能拍摄图像的非常小的部分。 例如,用户上传的图像宽度为602px,高度为400px,在这种情况下,最小裁剪选择区域是什么? 根据谷歌最小可裁剪选择区域宽度=574px和高度=323px用户不能使其小于这个尺寸。 这是什么逻辑? 仅供参考以上逻辑我正在寻找作物封面照片像谷歌加 谢啦

  • 我试图设置一系列div的背景图像,每个都有自己固定的高度,并拉伸以填充宽度,即使顶部/底部有溢出被剪辑。我只是不想边缘有空白。 目前,我有:http://jsfiddle.net/ndKWN/ CSS

  • 经常问,从不回答(至少不是以可复制的方式)。 我有一个图像视图,图像比视图小。我想按屏幕宽度缩放图像,并调整ImageView的高度,以反映图像的比例正确的高度。 这导致图像以其原始大小为中心(比屏幕宽度小),边缘在侧面。不好。 所以我补充说 同样的效果,不好。我补充说 一样的效果,不好。我将更改为。一样的效果,不好。我将更改为。 现在,最后,图像缩放到屏幕的宽度——但是在顶部和底部裁剪!所以我把

  • 我使用以下示例代码https://github.com/mklimek/android-crop/tree/newfeature_fied_size_crop。它给出了固定大小的裁剪视图(即HighlightView)。但问题是这个highlightView是固定的依赖于上传的图像。下面是两个不同大小的上传图像的屏幕截图。 我使用以下几行代码来固定HighlightView的大小: withFix

  • 问题内容: 我正在尝试根据元素的(100%)高度使用宽度大小制作一个响应式正方形。我相信仅使用CSS是不可能的。 正方形宽度应等于高度(大型容器的100%。大型容器大于屏幕的100%)。该比例必须为width = height才能保持正方形。 问题答案: 好的,这里的解决方案。