我想使用PHP裁剪.tif格式的图像

时间:2013-05-14 07:27:43

标签: php crop

我想使用php裁剪.tif格式的图像。 我已经完成了如果图像是.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);

任何人都可以提供帮助 提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以先将图片转换为jpg,然后再调整大小。示例代码如果您的服务器上安装了imagemagic:

exec("convert /path/to/file.tiff /path/to/file.jpg", $err);