簡體   English   中英

PHP中的圖像裁剪

[英]Image cropping in php

因此,我試圖編寫一個小腳本來裁剪用戶圖像。 我會向腳本發送一些信息(寬度,高度,對齊屬性和圖像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(),我需要做些什么來加載此函數?

根據您對錯誤的評論, imagecreatetruecolor()確實是一個函數,但前提是您已加載GD庫。

確保您的PHP安裝具有可訪問的GD兼容版本,並且如果剛添加了Web服務器,請不要忘記重新啟動它。

使用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);

我建議您使用imagemagick而不是GD / GD2 lib。 如果您追求質量,那么imagemagick太適合了。 有此鏈接也可以在同一http://www.rubblewebs.co.uk/imagemagick/compair.php上進行比較

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM