я хочу обрезать изображение формата .tif с помощью php

Я хочу обрезать изображение в формате .tif с помощью php. я сделал, если изображение в формате .jpg, gif или png, но я хочу обрезать изображение .tif с определенными размерами, т.е. с 200x200 прямо из полного изображения 1024x1024.пожалуйста, учтите, что это формат .tif.

http://rkwebsolutions.in.md-16.webhostbox.net/check/8713855051.tif

я использую эту функцию для изображения в формате jpeg/png/gif, но не могу обрезать изображение .tif

function cropImage($source_image, $target_image, $crop_area)
{
    // detect source image type from extension
    $source_file_name = basename($source_image);
    $source_image_type = substr($source_file_name, -3, 3);

    // create an image resource from the source image  
    switch(strtolower($source_image_type))
    {
        case 'jpg':
            $original_image = imagecreatefromjpeg($source_image);
            break;

        case 'gif':
            $original_image = imagecreatefromgif($source_image);
            break;

        case 'png':
            $original_image = imagecreatefrompng($source_image);
            break;    

        default:
            trigger_error('cropImage(): Invalid source image type', E_USER_ERROR);
            return false;
    }

    // create a blank image having the same width and height as the crop area
    // this will be our cropped image
    $cropped_image = imagecreatetruecolor($crop_area['width'], $crop_area['height']);

    // copy the crop area from the source image to the blank image created above
    imagecopy($cropped_image, $original_image, 0, 0, $crop_area['left'], $crop_area['top'], 
              $crop_area['width'], $crop_area['height']);

    // detect target image type from extension
    $target_file_name = basename($target_image);
    $target_image_type = substr($target_file_name, -3, 3);

    // save the cropped image to disk
    switch(strtolower($target_image_type))
    {
        case 'jpg':
            imagejpeg($cropped_image, $target_image, 100);
            break;

        case 'gif':
            imagegif($cropped_image, $target_image);
            break;

        case 'png':
            imagepng($cropped_image, $target_image, 0);
            break;    

        default:
            trigger_error('cropImage(): Invalid target image type', E_USER_ERROR);
            imagedestroy($cropped_image);
            imagedestroy($original_image);
            return false;
    }

    // free resources
    imagedestroy($cropped_image);
    imagedestroy($original_image);

    return true;
}


// using the function to crop an image
$source_image = 'image.jpg';
$target_image = 'cropped_image.jpg';
$crop_area = array('top' => 100, 'left' => 100, 'height' => 300, 'width' => 300);

cropImage($source_image, $target_image, $crop_area);

может кто поможет заранее спасибо.


person ashutosh    schedule 14.05.2013    source источник


Ответы (1)


Вы можете сначала преобразовать изображение в jpg, а не изменять его размер. Пример кода, если на вашем сервере установлен imagemagic:

exec("convert /path/to/file.tiff /path/to/file.jpg", $err);
person Agrest    schedule 14.05.2013
comment
нельзя ли изменить размер без конвертации в jpg?. - person ashutosh; 14.05.2013
comment
Может быть, есть способ изменить размер без преобразования. После изменения размера вы все равно можете выполнить повторное преобразование из измененного размера jpg в tiff, если хотите. - person Agrest; 14.05.2013
comment
Я попытался преобразовать изображение, но кажется, что изображение imagemagic не установлено на моем сервере, не могли бы вы помочь. - person ashutosh; 14.05.2013
comment
чтобы проверить, установлен ли imagick, следите за разделом imagick в phpinfo() - person Agrest; 14.05.2013
comment
И если вы хотите установить его, в Интернете есть много руководств по этому поводу. - person Agrest; 14.05.2013
comment
спасибо за все ваши ответы, я запускаю win7, не могли бы вы рассказать, как я могу настроить его на своем локальном сервере, а еще я хочу загрузить zip-папку, содержащую 1000 изображений, я хочу загрузить все изображения в zip-папке за один раз и обрезать любую идею. заранее спасибо - person ashutosh; 14.05.2013
comment
Есть много статей, как это сделать, смотрите здесь stackoverflow.com/search?q=install+imagemagick +на+локальном+сервере или здесь google.pl/ Думаю, вы найдете, как это сделать. - person Agrest; 16.05.2013