За последние 24 часа нас посетили 19484 программиста и 1964 робота. Сейчас ищут 1415 программистов ...

Как поменять разрешение картинки?

Тема в разделе "Обработка изображений средствами PHP", создана пользователем Serg, 18 янв 2007.

  1. Serg

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

    С нами с:
    7 авг 2006
    Сообщения:
    66
    Симпатии:
    0
    Адрес:
    Тамбов
    Скажите, можно ли с помощью PHP менять физическое разрешение картинки, т. е. не HTML-теги img width и height, а само разрешение картинки. Если можно, то как.
     
  2. kvv

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

    С нами с:
    24 ноя 2006
    Сообщения:
    146
    Симпатии:
    0
    Адрес:
    Луцьк- УКРАЇНА
    Надо поменять имя документа img.gif на img.jpg ?
     
  3. Serg

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

    С нами с:
    7 авг 2006
    Сообщения:
    66
    Симпатии:
    0
    Адрес:
    Тамбов
    Не расширение - *.jpg, *.png, *.gif и т. д., а разрешение :). Т. е. есть фотка 800х600, например. Надо из неё с помощью PHP сделать 120х150.
    Я не знаю английский на отлично, но как я понял, нужна какая-то библиотека для работы с этими функциями? Или не нужна?
     
  4. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    отличная возможность подучить ;)
     
  5. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    нужна
    эта: gd
     
  6. Петр

    Петр Активный пользователь

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
    Разрешение у экрана, у картинки - размер.
    Извините за мой французский, блин.
     
  7. Serg

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

    С нами с:
    7 авг 2006
    Сообщения:
    66
    Симпатии:
    0
    Адрес:
    Тамбов
    Ладно, пусть не разрешение, а ширина и высота.
    А никак по другому нельзя? А то вдруг на jino-net эта библиотека не подключена (у меня, например, эта библиотека не была подключена)?

    Я хочу, чтобы при загрузке одной большой фотки, из неё создавалась превьюшка примерно 120х150 и сохранялась в папку previews. Я уже всё сделал, но не могу сделать из большой фотки маленькую превьюшку.

    Посмотрел тот мануал, но вместо отображения маленькой фотки выводится куча символов. Скрипт взял из примера. Может можно изменить через PHP размер как-нибудь по-другому?
     
  8. Петр

    Петр Активный пользователь

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
    Скорее всего вы забыли отправить заголовок.
    Поэтому браузер воспринимает картинку как текст.

    Вам поможет функция header():

    PHP:
    1. header("Content-type: image/*"); // где * расширение файла: *.jpg, *.jpeg, *.bmp, *.png ...
    Пример фотогалереи с созданием уменьшенных копий изображений можно найти на сайте http://softtime.ru./info/downloads.php.
     
  9. Serg

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

    С нами с:
    7 авг 2006
    Сообщения:
    66
    Симпатии:
    0
    Адрес:
    Тамбов
    Заголовок отправлял, я не мог его не отправить, т. к. это скрипт из примера, я его скопировал.
     
  10. DarkElf

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

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
  11. Serg

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

    С нами с:
    7 авг 2006
    Сообщения:
    66
    Симпатии:
    0
    Адрес:
    Тамбов
    DarkElf
    Теперь вообще ничего не отображается (header отправлял).
    Кстати, я хочу, чтобы созданные превьюшки сохранялись в паку. Как это сделать?
     
  12. Serg

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

    С нами с:
    7 авг 2006
    Сообщения:
    66
    Симпатии:
    0
    Адрес:
    Тамбов
    Не в паку, а в папку, конечно :)
     
  13. Петр

    Петр Активный пользователь

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
    Вы хотите, чтобы превьюшки сохранялись в папку на компьютере пользователя? - Ознакомьтесь со статье 273 Уголовного Кодекса РФ и дважды подумайте.
     
  14. Serg

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

    С нами с:
    7 авг 2006
    Сообщения:
    66
    Симпатии:
    0
    Адрес:
    Тамбов
    Да не на компе пользователя, а на сервере. Пользователь загружает на сервер фотку, она сохраняется в папке photos (уже сделал), а из этой фотки уже автоматически, через PHP, делается превьюшка и сохраняется в папку previews (пока не сделал). Пока пользователь загружает и фотку и превьюшку, а я хочу, чтобы он загружал только фотку, а превьюшка создавалась сама - пользователем будет гораздо удобнее делиться фотографиями.
     
  15. Петр

    Петр Активный пользователь

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
    Обратитесь к книге "Практика создания Web-сайтов" Кузнецова, Симдянова, Голышева.
    В одной из ее глав этот процесс подробно описан.

    Если не хотите/можете/в падлу/денег нет курить их книгу, то вот полезные ссылки:
     
  16. eduha

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

    С нами с:
    8 ноя 2006
    Сообщения:
    278
    Симпатии:
    0
    Адрес:
    Караганда
     
  17. Serg

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

    С нами с:
    7 авг 2006
    Сообщения:
    66
    Симпатии:
    0
    Адрес:
    Тамбов
    Я понял как делать и сохранять превьюшку, понял алгоритм действий, но проблема в том, что вместо картинки чрезе функцию imagejpeg() отображается куча символов. Библиотеку GD подключил, дело не в ней, т. к. ошибок не выдаёт. Я уж и
    Код (Text):
    1. header("Content-type: image/jpeg");
    делал, но не получается. В чём может быть проблема? Он не выводит даже пустой квадрат (вместо него опять символы):
    Код (Text):
    1.  
    2. header("Content-type: image/png");
    3. $image=imagecreatetruecolor (300,300);
    4. imagepng($image);
    5. imagedestroy($image);
    Пример взят из книги, точно работает.
    У меня PHP 4, пишут, должно работать.
     
  18. Петр

    Петр Активный пользователь

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
    Вы обратите внимание на заголовки из Вашего ответа.
     
  19. pel

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

    С нами с:
    19 янв 2007
    Сообщения:
    569
    Симпатии:
    0
    Адрес:
    Симферополь
    а перед символами, случайно, не написано "Warning: Cannot modify headers information ..."?
     
  20. Serg

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

    С нами с:
    7 авг 2006
    Сообщения:
    66
    Симпатии:
    0
    Адрес:
    Тамбов
    Петр
    Что за заголовки из моего ответа? Я PHP совсем недавно начал изучать и не знаю, что это.

    pel
    Warning: Cannot modify headers information нет, не написано.
    Написано это (в самом начале, что я смог найти среди всех символов:
    Код (Text):
    1.  
    2. яШяаJFIFяю>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality яЫC    $.' ",#(7),01444'9=82<.342яЫC  2!!
     
  21. Петр

    Петр Активный пользователь

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
    Объясню популярно: заголовки это то, что предано в качестве аргумента функции header().
     
  22. pel

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

    С нами с:
    19 янв 2007
    Сообщения:
    569
    Симпатии:
    0
    Адрес:
    Симферополь
    Код (Text):
    1. <?
    2. header("Content-type: image/png");
    3. $image=imagecreatetruecolor (300,300);
    4. imagepng($image);
    5. imagedestroy($image);
    6. ?>
    точно работает. Попробуйте еще раз этот код _в точности_ как написано выше вставить в файл. Только это, больше ничего.


    а почему "JPEG", если в последнем коде png создается?? Вы, что ли, объединили
    Код (Text):
    1. header("Content-type: image/jpeg");
    и
    Код (Text):
    1. <?
    2. header("Content-type: image/png");
    3. $image=imagecreatetruecolor (300,300);
    4. imagepng($image);
    5. imagedestroy($image);
    6. ?>
    ???
     
  23. Петр

    Петр Активный пользователь

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
  24. Serg

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

    С нами с:
    7 авг 2006
    Сообщения:
    66
    Симпатии:
    0
    Адрес:
    Тамбов
    Спасибо всем всё заработало. Png просто в примере, а так я jpeg делаю. Ошибка в том, что header() нужно делать в самом начале, а я после <html> и т. д.