PHP: создание миниатюрного изображения с использованием координат X, Y - PullRequest
1 голос
/ 18 ноября 2011

Как я могу взять изображение 500x500 (или любого размера), которое было загружено на сервер, и сгенерировать новое изображение из определенных определенных координат x, y?Например (0,0) - (50,0);(0,50) - (50,50).Вместо того, чтобы изменить размер изображения до 50x50px, я хочу захватить верхнюю левую часть изображения и в некотором смысле «обрезать» его, чтобы использовать в качестве эскиза.

Как я могу сделать это в PHP?

Ответы [ 3 ]

1 голос
/ 18 ноября 2011

Вы хотите использовать imagecopy . Сначала создайте изображение с нужными вам размерами, а затем используйте imagecopy, чтобы часть исходного изображения превратилась в новое изображение:

// use whatever mechanism you prefer to load your source image into $image
$width = 50;
$height = 50;
// Define your starting coordinates in the source image.
$source_x = 20;
$source_y = 100;
$new_image = imagecreatetruecolor($width, $height);
imagecopy($new_image, $image, 0, 0, $source_x, $source_y, $width, $height);
// Now $new_image has the portion cropped from the source and you can output or save it.
imagejpeg($new_image);
0 голосов
/ 18 ноября 2011

Я видел несколько способов сделать это. Если вы хотите генерировать большие пальцы на лету, вы можете использовать:

function make_thumb($src,$dest,$desired_width)
{

  /* read the source image */
  $source_image = imagecreatefromjpeg($src);
  $width = imagesx($source_image);
  $height = imagesy($source_image);

  /* find the "desired height" of this thumbnail, relative to the desired width  */
  $desired_height = floor($height*($desired_width/$width));

  /* create a new, "virtual" image */
  $virtual_image = imagecreatetruecolor($desired_width,$desired_height);

  /* copy source image at a resized size */
  imagecopyresized($virtual_image,$source_image,0,0,0,0,$desired_width,$desired_height,$width,$height);

  /* create the physical thumbnail image to its destination */
  imagejpeg($virtual_image,$dest);
}

Вы также можете установить параметр качества в функции imagejpeg.

Или, если вы хотите сохранить изображение большого пальца в каталог, я бы посмотрел:

http://bgallz.org/270/php-create-thumbnail-images/

или

http://www.imagemagick.org/script/index.php

0 голосов
/ 18 ноября 2011

http://www.php.net/manual/en/function.imagick-cropthumbnailimage.php#81547

$image = new Imagick($path."test1.jpg");

$image->cropThumbnailImage(160,120); // Crop image and thumb

$image->writeImage($path."test1.jpg");
...