In my opinion this function is not working as expected, tested for imagemagick version 6.3.7
As described above, the function returns an image with a fixed height and a variable width. Here's a fix that will return a cropped thumbnail with the defined dimensions, without variations in the dimensions.
<?php
// define widescreen dimensions
$width = 160;
$height = 90;
// load an image
$i = new Imagick("your image file");
// get the current image dimensions
$geo = $i->getImageGeometry();
// crop the image
if(($geo['width']/$width) < ($geo['height']/$height))
{
$i->cropImage($geo['width'], floor($height*$geo['width']/$width), 0, (($geo['height']-($height*$geo['width']/$width))/2));
}
else
{
$i->cropImage(ceil($width*$geo['height']/$height), $geo['height'], (($geo['width']-($width*$geo['height']/$height))/2), 0);
}
// thumbnail the image
$i->ThumbnailImage($width,$height,true);
// save or show or whatever the image
$i->setImageFormat("png");
header("Content-Type: image/png");
exit($i);
?>
PHP.mk документација
Imagick::cropThumbnailImage
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
imagick.cropthumbnailimage.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
imagick.cropthumbnailimage.php
Imagick::cropThumbnailImage
Референца за `imagick.cropthumbnailimage.php` со подобрена типографија и навигација.
Imagick::cropThumbnailImage
(PECL imagick 2, PECL imagick 3)
Imagick::cropThumbnailImage — Креира минијатура со сечење
= NULL
Креира минијатура со фиксна големина со прво скалирање на сликата нагоре или надолу и сечење на одредена област од центарот.
Параметри
width-
Ширината на минијатурата
height-
Висината на минијатурата
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true на успешен исход.
Errors/Exceptions
Фрла ImagickException при грешка.
Белешки од корисници 3 белешки
martijn na elicit tocka nl ¶
пред 15 години
sonsandsons na gmail tocka com ¶
пред 14 години
It's worth noting that using cropThumbnailImage can appear to give undesired results if you're using .gif image formats. If you are using .gif's, you'll need to compliment this function with a removal of the canvas.
<?php
//instantiate the image magick class
$image = new Imagick($image_path);
//crop and resize the image
$image->cropThumbnailImage(100,100);
//remove the canvas
$image->setImagePage(0, 0, 0, 0);
?>
Рикардо Кордс Монтеиро ¶
пред 16 години
I found a relevant posting complete with demo code at this site:
http://valokuva.org/?p=8
Sample code goes like this:
<?php
/* Read the image */
$im = new imagick( "test.png" );
/* create the thumbnail */
$im->cropThumbnailImage( 80, 80 );
/* Write to a file */
$im->writeImage( "th_80x80_test.png" );
?>
This is a specialization of the cropImage method. At a high level, this method will create a thumbnail of a given image, with the thumbnail sized at ($width, $height).
If the thumbnail does not match the aspect ratio of the source image, this is the method to use. The thumbnail will capture the entire image on the shorter edge of the source image (ie, vertical size on a landscape image). Then the thumbnail will be scaled down to meet your target height, while preserving the aspect ratio. Extra horizontal space that does not fit within the target $width will be cropped off evenly left and right.
As a result, the thumbnail is usually a good representation of the source image.