2014-02-11 2 views
-1

Мне нужно изменить размер изображения до фиксированного размера. Но это не работает и имеет ошибку, что я делаю?Изменение размера изображения с помощью PHP?

ONLINE DEMO: http://codepad.org/3OrIHfoy

ОШИБКА:

Fatal error: Call to undefined function imagecreatefromjpeg() on line 58

PHP:

<?php 
function thumbnail_box($img, $box_w, $box_h) { 
    //create the image, of the required size 
    $new = imagecreatetruecolor($box_w, $box_h); 
    if($new === false) { 
     //creation failed -- probably not enough memory 
     return null; 
    } 


    //Fill the image with a light grey color 
    //(this will be visible in the padding around the image, 
    //if the aspect ratios of the image and the thumbnail do not match) 
    //Replace this with any color you want, or comment it out for black. 
    //I used grey for testing =) 
    $fill = imagecolorallocate($new, 200, 200, 205); 
    imagefill($new, 0, 0, $fill); 

    //compute resize ratio 
    $hratio = $box_h/imagesy($img); 
    $wratio = $box_w/imagesx($img); 
    $ratio = min($hratio, $wratio); 

    //if the source is smaller than the thumbnail size, 
    //don't resize -- add a margin instead 
    //(that is, dont magnify images) 
    if($ratio > 1.0) 
     $ratio = 1.0; 

    //compute sizes 
    $sy = floor(imagesy($img) * $ratio); 
    $sx = floor(imagesx($img) * $ratio); 

    //compute margins 
    //Using these margins centers the image in the thumbnail. 
    //If you always want the image to the top left, 
    //set both of these to 0 
    $m_y = floor(($box_h - $sy)/2); 
    $m_x = floor(($box_w - $sx)/2); 

    //Copy the image data, and resample 
    // 
    //If you want a fast and ugly thumbnail, 
    //replace imagecopyresampled with imagecopyresized 
    if(!imagecopyresampled($new, $img, 
     $m_x, $m_y, //dest x, y (margins) 
     0, 0, //src x, y (0,0 means top left) 
     $sx, $sy,//dest w, h (resample to this size (computed above) 
     imagesx($img), imagesy($img)) //src w, h (the full size of the original) 
    ) { 
     //copy failed 
     imagedestroy($new); 
     return null; 
    } 
    //copy successful 
    return $new; 
} 
$i = imagecreatefromjpeg("http://techstroke.com/wp-content/uploads/2008/12/image2.png"); 
$thumb = thumbnail_box($i, 210, 150); 
imagedestroy($i); 

if(is_null($thumb)) { 
    /* image creation or copying failed */ 
    header('HTTP/1.1 500 Internal Server Error'); 
    exit(); 
} 
header('Content-Type: image/jpeg'); 
imagejpeg($thumb); 
+4

Мне нравится, что вы пытаетесь использовать imagecreatefrom ** jpeg ** для загрузки PNG. Хорошие времена. В любом случае, похоже, у вас нет пакета php5-gd для вашего дистрибутива. –

ответ

0

, что ошибка ...

Fatal error: Call to undefined function imagecreatefromjpeg() on line 58 

imagecreatefromjpeg() не отозваны, так как это делают es не существует. Это означает, что библиотека GD еще не установлена ​​в вашей системе.

here are the installation notes. вам понадобятся все, чтобы все получилось. поскольку вы зацепили эту функцию php из Интернета, она должна работать нормально, как только вы получите установленную библиотеку GD.

Смежные вопросы