Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2011, 15:35   #1
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
Вопрос Сжать картинку PNG

Собственно из заголовка всё понятно. Вот код:
PHP код:
function get_rsh($type){
    switch(
$type){
      case 
"image/jpeg": return "jpg";
        break;
      case 
"image/png": return "png";
        break;
    }
  }
  function 
image_resize($from_file$to_file$rsh) {
    switch(
$rsh){
      case 
"jpg"$img1 imagecreatefromjpeg($from_file);
        break;
      case 
"png"$img1 imagecreatefrompng($from_file);
        break;  
    }
    
$img2 imagecreatetruecolor(100100);
    
$width 100;
    
$height 100;
    
imagecopyresized($img2$img10000$width$heightimagesx($img1) , imagesy($img1));
    switch(
$rsh){
      case 
"jpg"imagejpeg($img2$to_file,100);
        break;
      case 
"png"imagepng($img2$to_file,100);
        break;  
    }
    
imagedestroy($img1);
    
imagedestroy($img2);

С jpeg всё отлично, когда же загружаю png, то сжатый png не открывается на сайте, а при попытке открыть на компьютере говорит, что файл поврежден. В чем может быть проблема?
nec117 вне форума Ответить с цитированием
Старый 10.02.2011, 16:04   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

ибо у функции для png только 2 параметра! Нельзя задавать качество...
PHP код:
ImagePNG($img,$to_file); 
ADSoft вне форума Ответить с цитированием
Старый 10.02.2011, 16:09   #3
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
По умолчанию

Спасибо, помогло
nec117 вне форума Ответить с цитированием
Старый 10.02.2011, 16:27   #4
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

и вместо imagecopyresized используйте imagecopyresampled - результат получается гораздо качественнее
Cronos20 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить картинку при наведении на другую картинку (ссылку) seeker1 JavaScript, Ajax 8 04.07.2010 19:42
Сжать массив Vladimir-888 Помощь студентам 16 28.06.2010 01:33
Как сжать bmp? MkG Общие вопросы C/C++ 2 23.05.2010 12:10
Как сжать и распаковать файл с помощью API? 3D Hunter Win Api 10 16.03.2010 03:05
сжать файл andrey4623 Общие вопросы Delphi 14 13.01.2008 07:31