ОБработка изображений — цифрят почему-то

Тема в разделе "PHP", создана пользователем Albert22, 1 окт 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Albert22

    Albert22

    Регистр.:
    30 мар 2008
    Сообщения:
    270
    Симпатии:
    10
    Всем привет.
    Скрипт принимает и сохраняет изображение.
    В результате оно цифрит почему-то (примеры во вложении, оригинал и уменьшенное). Третьим вложил то же самое изображение, но уменьшенное Фотошопом.
    Что с этим делать?
    Вот как мне кажется наиболее ответственный за это всё кусок кода:
    PHP:
    $dest = @imagecreatetruecolor($nwidth,$nheight);
    if (!
    $dest) {die();}
        if(
    strpos($type'q')){ // если запрошено квадратное изображение
            
    if ($size[0]>$size[1]) {
                
    imagecopyresized($dest$src00,
                
    round((max($size[0],$size[1])-min($size[0],$size[1]))/2),
                
    0$nwidth$nwidthmin($size[0],$size[1]), min($size[0],$size[1]));
            }
            if (
    $size[0]<$size[1]) {
                
    imagecopyresized($dest$src0000$nwidth$nwidth,
                
    min($size[0],$size[1]), min($size[0],$size[1]));
            }
            if (
    $size[0]==$size[1]) {
                
    imagecopyresized($dest$src0000$nwidth$nwidth$size[0], $size[0]);
            }
        } else {
            
    imagecopyresized($dest$src0,0,0,0$nwidth$nheight$size[0], $size[1]);
        }


    $bg=imageColorAllocate($dest255,255,255);
    imageColorTransparent($dest$bg);


     

    Вложения:

    • m_66.jpg
      m_66.jpg
      Размер файла:
      2,9 КБ
      Просмотров:
      28
    • o_66.jpg
      o_66.jpg
      Размер файла:
      19,6 КБ
      Просмотров:
      5
    • m-2_66.png
      m-2_66.png
      Размер файла:
      5,6 КБ
      Просмотров:
      29
  2. Onu

    Onu Постоялец

    Регистр.:
    4 июн 2008
    Сообщения:
    80
    Симпатии:
    16
    Не вглядываясь в код, скажу - просто посмотри размер рисунков, полученный скриптом 100х27, а фотошопом 100х28. Попробуй с пропорцей округления поколдовать, на малых числах уже 1пх потерялся, а это плохо.
     
  3. Albert22

    Albert22

    Регистр.:
    30 мар 2008
    Сообщения:
    270
    Симпатии:
    10
    Изменил рассчитывающую высоту формулу, поставил ceil();
    Теперь высота 28px.
    К сожалению, не помогло:
     

    Вложения:

    • m_66.jpg
      m_66.jpg
      Размер файла:
      3,3 КБ
      Просмотров:
      26
  4. Onu

    Onu Постоялец

    Регистр.:
    4 июн 2008
    Сообщения:
    80
    Симпатии:
    16
    Тогда пробуй с параметром quality - ставь 90%.
    Сейчас у тебя вес фотки 3кб, а должен быть 5+.
    http://ru2.php.net/function.imagejpeg
     
  5. Albert22

    Albert22

    Регистр.:
    30 мар 2008
    Сообщения:
    270
    Симпатии:
    10
    И так стоит 90.
    PHP:
    header("Content-type: image/jpeg");
    imagejpeg($destNULL90);
    imagedestroy($dest);
     
  6. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    Albert22 нравится это.
  7. Albert22

    Albert22

    Регистр.:
    30 мар 2008
    Сообщения:
    270
    Симпатии:
    10
Статус темы:
Закрыта.