Изображение обрезки в PHP

Код ниже обрезок изображение хорошо, которое является тем, что я хочу, но для увеличенных изображений, это wotn работают также. Есть ли любой способ 'изменения масштаба из изображения'

Idealy, который я смог бы иметь каждое изображение примерно тот же размер прежде, чем обрезать так, чтобы я получил хорошие результаты каждый раз

Код

<?php

$image = $_GET['src']; // the image to crop
$dest_image = 'images/cropped_whatever.jpg'; // make sure the directory is writeable

$img = imagecreatetruecolor('200','150');
$org_img = imagecreatefromjpeg($image);
$ims = getimagesize($image);
imagecopy($img,$org_img, 0, 0, 20, 20, 200, 150);
imagejpeg($img,$dest_image,90);
imagedestroy($img);
echo '<img src="'.$dest_image.'" ><p>';
61
задан 24 January 2013 в 09:05

2 ответа

Можно использовать imagecrop функция в (PHP 5> = 5.5.0, PHP 7)

Пример:

<?php
$im = imagecreatefrompng('example.png');
$size = min(imagesx($im), imagesy($im));
$im2 = imagecrop($im, ['x' => 0, 'y' => 0, 'width' => $size, 'height' => $size]);
if ($im2 !== FALSE) {
    imagepng($im2, 'example-cropped.png');
    imagedestroy($im2);
}
imagedestroy($im);
?>
0
ответ дан 31 October 2019 в 15:33

Улучшенная функциональность изображения Обрезки в PHP на лету.

http://www.example.com/cropimage.php?filename=a.jpg&newxsize=100&newysize=200&constrain=1

Код в cropimage.php

$basefilename = @basename(urldecode(

Улучшенная функциональность изображения Обрезки в PHP на лету.

[110]

Код в cropimage.php

[111]REQUEST['filename'])); $path = 'images/'; $outPath = 'crop_images/'; $saveOutput = false; // true/false ("true" if you want to save images in out put folder) $defaultImage = 'no_img.png'; // change it with your default image $basefilename = $basefilename; $w =

Улучшенная функциональность изображения Обрезки в PHP на лету.

[110]

Код в cropimage.php

[111]REQUEST['newxsize']; $h =

Улучшенная функциональность изображения Обрезки в PHP на лету.

[110]

Код в cropimage.php

[111]REQUEST['newysize']; if ($basefilename == "") { $img = $path . $defaultImage; $percent = 100; } else { $img = $path . $basefilename; $len = strlen($img); $ext = substr($img, $len - 3, $len); $img2 = substr($img, 0, $len - 3) . strtoupper($ext); if (!file_exists($img)) $img = $img2; if (file_exists($img)) { $percent = @

Улучшенная функциональность изображения Обрезки в PHP на лету.

[110]

Код в cropimage.php

[111]GET['percent']; $constrain = @

Улучшенная функциональность изображения Обрезки в PHP на лету.

[110]

Код в cropimage.php

[111]GET['constrain']; $w = $w; $h = $h; } else if (file_exists($path . $basefilename)) { $img = $path . $basefilename; $percent =

Улучшенная функциональность изображения Обрезки в PHP на лету.

[110]

Код в cropimage.php

[111]GET['percent']; $constrain =

Улучшенная функциональность изображения Обрезки в PHP на лету.

[110]

Код в cropimage.php

[111]GET['constrain']; $w = $w; $h = $h; } else { $img = $path . 'no_img.png'; // change with your default image $percent = @

Улучшенная функциональность изображения Обрезки в PHP на лету.

[110]

Код в cropimage.php

[111]GET['percent']; $constrain = @

Улучшенная функциональность изображения Обрезки в PHP на лету.

[110]

Код в cropimage.php

[111]GET['constrain']; $w = $w; $h = $h; } } // get image size of img $x = @getimagesize($img); // image width $sw = $x[0]; // image height $sh = $x[1]; if ($percent > 0) { // calculate resized height and width if percent is defined $percent = $percent * 0.01; $w = $sw * $percent; $h = $sh * $percent; } else { if (isset ($w) AND !isset ($h)) { // autocompute height if only width is set $h = (100 / ($sw / $w)) * .01; $h = @round($sh * $h); } elseif (isset ($h) AND !isset ($w)) { // autocompute width if only height is set $w = (100 / ($sh / $h)) * .01; $w = @round($sw * $w); } elseif (isset ($h) AND isset ($w) AND isset ($constrain)) { // get the smaller resulting image dimension if both height // and width are set and $constrain is also set $hx = (100 / ($sw / $w)) * .01; $hx = @round($sh * $hx); $wx = (100 / ($sh / $h)) * .01; $wx = @round($sw * $wx); if ($hx < $h) { $h = (100 / ($sw / $w)) * .01; $h = @round($sh * $h); } else { $w = (100 / ($sh / $h)) * .01; $w = @round($sw * $w); } } } $im = @ImageCreateFromJPEG($img) or // Read JPEG Image $im = @ImageCreateFromPNG($img) or // or PNG Image $im = @ImageCreateFromGIF($img) or // or GIF Image $im = false; // If image is not JPEG, PNG, or GIF if (!$im) { // We get errors from PHP's ImageCreate functions... // So let's echo back the contents of the actual image. readfile($img); } else { // Create the resized image destination $thumb = @ImageCreateTrueColor($w, $h); // Copy from image source, resize it, and paste to image destination @ImageCopyResampled($thumb, $im, 0, 0, 0, 0, $w, $h, $sw, $sh); //Other format imagepng() if ($saveOutput) { //Save image $save = $outPath . $basefilename; @ImageJPEG($thumb, $save); } else { // Output resized image header("Content-type: image/jpeg"); @ImageJPEG($thumb); } }
1
ответ дан 31 October 2019 в 15:33

Другие вопросы по тегам:

Похожие вопросы: