2012-08-12 53 views
0

因此,我正在尝试编写一个脚本来裁剪用户图像。我会发送一些信息(宽度,高度,对齐属性和图像url)到脚本,它应该返回裁剪图像。然而,它不工作...只是一个“图像未找到”符号:/这是我的剧本,有什么想法?在php中修剪图像

<?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()有什么我需要做的加载这个功能呢?

+1

在[Fiddler](http://www.fiddler2.com/fiddler2/)中观看请求/响应,响应中有空白或错误​​消息你看不到。 – DCoder 2012-08-12 05:49:28

+1

删除“Content-Type”标题并用浏览器点击该URL以查看错误是什么。 (确保错误报告已打开。) – Brad 2012-08-12 05:49:29

+0

您是否使用imagick? – 2012-08-12 05:51:13

回答

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); 
2

根据你对错误评论,imagecreatetruecolor()确实是一个功能,但前提是你必须加载GD库。

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