За последние 24 часа нас посетили 25775 программистов и 1726 роботов. Сейчас ищут 852 программиста ...

Обработка изображения.

Тема в разделе "PHP для новичков", создана пользователем 715kg, 16 апр 2013.

  1. 715kg

    715kg Активный пользователь

    С нами с:
    2 мар 2013
    Сообщения:
    147
    Симпатии:
    0
    Здравствуйте, столкнулся с такой проблемой.

    Код (Text):
    1. header ("Content-type: image/png");
    2. //Выводим Фон
    3.  
    4. if (!$img = @imagecreatefromjpeg('images/160x300/'.$skin.'.jpg'))
    5. {
    6.     $img = imagecreatefromjpeg('images/160x300/no-skin.jpg');
    7. }
    8.  
    9.  
    10. //Накладываем картинку карты на фон
    11. if (!$i = @imagecreatefromjpeg("../images/maps/".$game."/".$serv['server_map'].".jpg"))
    12. {
    13.     $i = imagecreatefromjpeg('banners-gameamx/default1.jpg');
    14. }
    15. imagecopyresampled($img, $i, 34, 105, 0, 0, 120, 90, 160, 120);
    накладываю картинку на фон. Размер изображения 160x120 px Выводит прекрасно. Но, если картинка имеет размер больше чем 160x120 То он ее не сжимает до 160x120 а вставляет такую, какая есть. И показывается в квадратике размером 160x120 всего лишь верхний угол этого большого изображения. И оно нормально не отображается.

    Подскажите пожалуйста, как сделать чтобы не важно какой размер был. Изображение выводилось строго в размере 160х120 ??
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    посмотрите в форуме обработки изображений есть готовые скрипты которые выполняют задачу называемую image resize. или с этим запросом в гугл.
     
  3. 715kg

    715kg Активный пользователь

    С нами с:
    2 мар 2013
    Сообщения:
    147
    Симпатии:
    0
    Спасибо огромное. Нашел, сделал)
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    Код (Text):
    1. $img=imageCreateFromPNG("2/Style/logo.png");
    2. $w=ImageSX($img);
    3. $h=ImageSY($img);
    4. $maxW=100;
    5. $maxH=100;
    6. $ratioWidth = $w/$maxW;
    7. $ratioHeight = $h/$maxH;
    8. if ($ratioWidth < $ratioHeight){
    9. $destW = $w/$ratioHeight;
    10. $destH = $maxH;
    11. } else {
    12. $destW = $maxW;
    13. $destH = $h/$ratioWidth;
    14. }
    15. $destImage = imagecreate($destW, $destH);
    16. ImageCopyResized($destImage, $img, 0, 0, 0, 0, $destW, $destH, $w, $h);
    17. imagepng($destImage, "images/logo/1.png", 9, PNG_ALL_FILTERS);