2013-07-26 12 views
0

этого сценарий будет загружать изображение, а затем сохранить локальную копию для кэшированияPHP: изменение размера изображений перед кэшированием

header('Content-Type: image/png'); 

      $imgpochette = $_GET['i']; 

      $ENABLE_CACHE = true; 
      $CACHE_TIME_HOURS = 744; 
      $CACHE_FILE_PATH = "pochette_album/$imgpochette.png"; 

      if($ENABLE_CACHE && file_exists($CACHE_FILE_PATH) && (time() - filemtime($CACHE_FILE_PATH) < ($CACHE_TIME_HOURS * 60 * 60))) { 
       echo @file_get_contents($CACHE_FILE_PATH); 
      } else { 
        // Load the requested image 
        $imgdisplay = "http://www.pirate-punk.com/pochette.php?i=$imgpochette&display=1"; 
        $image = imagecreatefromstring(file_get_contents($imgdisplay)); 
$width = "30"; 
$height = "30"; 
$new_image = imagecreatetruecolor($width, $height); 
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $width, $height, $image.getWidth(), $image.getHeight()); 
        // Send the image 
        imagejpeg($image, $CACHE_FILE_PATH); 
        exit(); 
       @file_put_contents($CACHE_FILE_PATH, $output); 
       echo $output; 
      } 

как я могу изменить размер изображения до 300x300px перед сохранением его?

+0

Возможный дубликат [изменить размер png/jpeg изображение] (http://stackoverflow.com/questions/10263171/resize-png-jpeg-image) – Orangepill

+0

i up от моего кода с функцией imagecopyresampled, но теперь я получаю сообщение о том, что изображение невозможно отобразить, потому что оно содержит ошибки. – libertaire

ответ

0

и нужно использовать

imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); 

проверить этот адрес, как только image resize .hope это поможет полный

+0

Я обновил свой код с помощью функции imagecopyresampled, но теперь я получаю сообщение о том, что изображение не может быть отображено, потому что оно содержит ошибки. – libertaire

+0

может сказать, какой тип изображения вы загружаете – nickle

+0

изображения могут быть разных типов (gif, jpg или png) ... скрипт преобразует их в PNG после их кеширования ... Мне просто нужно изменить размер PNG до сохранения это в папку кэша (pochette_album /) – libertaire

1

Я думаю, что эта связь может помочь вам, (imagecopyresampled функции PHP)

http://php.net/manual/en/function.imagecopyresampled.php

+0

Я обновил свой код с помощью функции imagecopyresampled, но теперь я получаю сообщение об ошибке, поскольку изображение не может быть отображено, потому что оно содержит ошибки. – libertaire

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