Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Изминение размера изображения
Форумы портала PHP.SU » PHP » Программирование на PHP » Изминение размера изображения

Страниц (1): [1]
 

1. Maskca - 17 Августа, 2009 - 17:43:17 - перейти к сообщению
Скажите вот есть код:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. header("Content-type: image/jpeg");
  3. $name = "site.jpg";
  4. $w = 700;
  5. $quality = 100;
  6. $image = imagecreatefromjpeg ($name);
  7. $width = imagesx ($image);
  8. $height = imagesy ($image);
  9. if ($width != $w)
  10. {
  11. $ratio = $width/$w;
  12. $new_width = round ($width/$ratio);
  13. $new_height = round ($height/$ratio);
  14. $new_image = imagecreatetruecolor ($new_width, $new_height);
  15. imagecopyresampled ($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
  16. imagejpeg ($new_image, '', $quality);
  17. imagedestroy ($image);
  18. imagedestroy ($new_image);
  19. }
  20. ?>


как сделать чтобы он работал еще и с gif и png изображениями?
2. Champion - 17 Августа, 2009 - 18:03:51 - перейти к сообщению
Есть imagecreatefromgif() и imagecreatefrompng.
3. Nestor - 17 Августа, 2009 - 18:07:38 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $ext = strtolower(substr($name,-4));
  2. if ($ext == ".gif") {
  3.         $image  = imagecreatefromgif($name);
  4. } elseif ($ext == ".jpg" or $ext == "jpeg") {
  5.         $image  = imagecreatefromjpeg($name);
  6. } elseif ($ext == ".png"){
  7.         $image  = imagecreatefrompng($name);
  8. }
4. Maskca - 17 Августа, 2009 - 21:06:29 - перейти к сообщению
Скажите, а как сначала проверить существует ли файл по ссылке $name?
Я пробовал так:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. header("Content-type: image/jpeg");
  4.  
  5. $name = "http://absurdu.net/wp-content/uploads/2009/05/_mg_2096.jpg";
  6.  
  7. if (@fopen(''.$name, "r")) {
  8.    
  9.    $w = 355;
  10. $quality = 90;
  11. $ext = strtolower(substr($name,-4));
  12. if ($ext == ".gif") {
  13.         $image  = imagecreatefromgif($name);
  14. } elseif ($ext == ".jpg" or $ext == "jpeg") {
  15.         $image  = imagecreatefromjpeg($name);
  16. } elseif ($ext == ".png"){
  17.         $image  = imagecreatefrompng($name);
  18. }
  19. $width = imagesx ($image);
  20. $height = imagesy ($image);
  21. if ($width != $w)
  22. {
  23. $ratio = $width/$w;
  24. $new_width = round ($width/$ratio);
  25. $new_height = round ($height/$ratio);
  26. $new_image = imagecreatetruecolor ($new_width, $new_height);
  27. imagecopyresampled ($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
  28. imagejpeg ($new_image, 'proba/1.jpg', $quality);
  29. imagedestroy ($image);
  30. imagedestroy ($new_image);
  31. }
  32.  
  33. }
  34. else {
  35.     echo "Файл не найден";
  36. }
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48. ?>


Но оно почемуто не показывает, подскажите почему?
(Добавление)
Извините ошибку нашол
5. Viper - 18 Августа, 2009 - 08:26:56 - перейти к сообщению
Nestor а если к примеру png изображение будет с расширением gif, то скрипт не отработает. имхо лучше через mime-type.
6. Nestor - 18 Августа, 2009 - 16:28:34 - перейти к сообщению
Viper, мало кто так делает

Maskca, используй fsockopen

 

Powered by ExBB FM 1.0 RC1