0

所以我正在尝试编写一个小脚本来裁剪用户图像。我会向脚本发送一些信息(宽度、高度、对齐属性和图像 url),它应该返回裁剪的图像。但是,它不起作用...只是一个“找不到图像”符号:/这是我的脚本,有什么想法吗?

<?php
session_start();
header('Content-type: image/jpeg');
$w=$_GET['w'];
$h=$_GET['h'];
$x=$_GET['x'];
$y=$_GET['y'];
$filename="http://www.domain.com/".$_GET['src'];
$file_ext = substr($filename, strrpos($filename, ".") + 1);
$ext='';

if($file_ext=='jpg')
{
    $image = imagecreatefromjpeg($filename); 
}
else if ($file_ext=='gif')
{
    $image = imagecreatefromgif($filename); 
}
else if ($file_ext=='png')
{
    $image = imagecreatefrompng($filename); 
} 

$crop = imagecreatetruecolor($w,$h);
imagecopy($crop, $image, 0, 0, $x, $y, $w, $h);
imagejpeg($crop);
?>

编辑:看起来这是错误:致命错误:在第 24 行的 domainpath/crop.php 中调用未定义的函数 imagecreatetruecolor() 我需要做些什么来加载这个函数吗?

4

3 回答 3

2

根据您对错误的评论,imagecreatetruecolor()确实是一个函数,但前提是您已加载 GD 库。

确保您的 PHP 安装可以访问兼容的 GD 版本,如果您刚刚添加了它,请不要忘记重新启动您的 Web 服务器。

于 2012-08-12T05:53:14.273 回答
1

使用ImageMagick,试试这个;

<?php
function resize_image($file, $w, $h, $crop=FALSE) {
    $img = new Imagick($file);
    if ($crop) {
        $img->cropThumbnailImage($w, $h);
    } else {
        $img->thumbnailImage($w, $h, TRUE);
    }

    return $img;
}
resize_image(‘/path/to/some/image.jpg’, 150, 150);
于 2012-08-12T05:53:05.987 回答
0

我会推荐你​​使用 imagemagick 而不是 GD / GD2 lib。如果你在寻找质量,那么 imagemagick 就太适合了。有这个链接也给出了相同的比较 http://www.rubblewebs.co.uk/imagemagick/compair.php

于 2012-08-12T06:09:53.283 回答