imagecreatefromjpeg

12
DriverCat
На сайте с 10.04.2008
Offline
116
1524

Добрый день!

Накладываю вотермарк средствами GD. Обычно все работает нормально, но иногда некоторые файлы JPEG просто походу не обрабатываются функцией imagecreatefromjpeg();

делаю для проверки просто две строки

$main_img_obj= imagecreatefromjpeg("imgs/".$_GET['file']);

imagejpeg($main_img_obj, "", 100);

и не вижу картинку, хлтя общая масса файлов обрабатывается нормально. Во всех програх эти файлы нормально открываются.

Robin_Bad
На сайте с 24.12.2007
Offline
85
#1

DriverCat, а нет возможности использовать ImageMagick? Он во всех ситуациях предпочтительней.

Далее, конкретно в вашем случае может быть так, что файл на самом деле не будет являться JPEG'ом, а например GIF'ом? Программы просмотра картинок его откроют его в любом случае, а вот GD споткнётся.

P.S. и я очень надеюсь, что хоть где-то выше по коду у вас анализируется $_GET['file'] на предмет допустимых значений.

DriverCat
На сайте с 10.04.2008
Offline
116
#2
Robin_Bad:
DriverCat, а нет возможности использовать ImageMagick? Он во всех ситуациях предпочтительней.

Далее, конкретно в вашем случае может быть так, что файл на самом деле не будет являться JPEG'ом, а например GIF'ом? Программы просмотра картинок его откроют его в любом случае, а вот GD споткнётся.

P.S. и я очень надеюсь, что хоть где-то выше по коду у вас анализируется $_GET['file'] на предмет допустимых значений.

У меня простейшие операции и не хотелось бы загромождать код imagemagickom.

Я пробовал все варианты - и imagecreatefrompng и imagecreatefromgif - не работает.

Это пока тестовая локальная версия, пока переменные не проверяются.

Robin_Bad
На сайте с 24.12.2007
Offline
85
#3

DriverCat, в своё время регулярно сталкивался с проблемами в GD, поэтому и ушёл с него на IM и ни разу не пожалел. Загромождение в вашем случае будет в замене целой обвязки на GD для наложения вотермарка на две строчки другого кода? :) Если уж так вам не хочется юзать IM, выложите образцы "работающего" и "неработающего" файлов, любопытно глянуть. Имхо, имеет место быть баг GD.

DriverCat
На сайте с 10.04.2008
Offline
116
#4
Robin_Bad:
DriverCat, в своё время регулярно сталкивался с проблемами в GD, поэтому и ушёл с него на IM и ни разу не пожалел. Загромождение в вашем случае будет в замене целой обвязки на GD для наложения вотермарка на две строчки другого кода? :) Если уж так вам не хочется юзать IM, выложите образцы "работающего" и "неработающего" файлов, любопытно глянуть. Имхо, имеет место быть баг GD.

Если честно не использовал просто imagemagick, если знаете хорошие примеры - иожете скинуть урл?

Вот короче сейчас попытался загрузить не открывающееся фото на фотохостинг saveimg.ru и мне выдало ошибку, что изображение имеет разрешение меньше 150х150 px, посмотрел - действительно, оно 96х96 при размере фотки 448х336. То есть GD не умеет работать с такими изображениями?

Robin_Bad
На сайте с 24.12.2007
Offline
85
#5

DriverCat, попробуйте, с ним гораздо приятнее работать. Вот ссылка на соответствующий раздел официальной документации:

http://www.imagemagick.org/Usage/annotating/#watermarking

Как следует из ссылки, он всё это умеет "из коробки".

По поводу вашего изображения не очень понял сейчас: "оно 96х96 при размере фотки 448х336". Это как понимать? :)

N
На сайте с 06.05.2007
Offline
419
#6

превьюшка в jpg ? да должен уметь.

ну попробуйте еще больше памяти выделить для memory_limit в php

Кнопка вызова админа ()
DriverCat
На сайте с 10.04.2008
Offline
116
#7
Robin_Bad:
DriverCat, попробуйте, с ним гораздо приятнее работать. Вот ссылка на соответствующий раздел официальной документации:
http://www.imagemagick.org/Usage/annotating/#watermarking
Как следует из ссылки, он всё это умеет "из коробки".

По поводу вашего изображения не очень понял сейчас: "оно 96х96 при размере фотки 448х336". Это как понимать? :)

Открываю свойства рисунка в винде > сводка > дополнительно и вижу:

ширина : 448

высота: 336

горизонтальное разрешение : 96 точек на дюйм

вертикальное разрешение : 96 точек на дюйм

честно, до конца тоже не очень это понимаю...

Robin_Bad
На сайте с 24.12.2007
Offline
85
#8

DriverCat, разрешение в данном случае - это не размер картинки, а её "плотность", именуемая DPI и используемая ТОЛЬКО при печати, так что сейчас нам это не нужно.

Покажите уж картинку-то, даже если она неприличная :)

DriverCat
На сайте с 10.04.2008
Offline
116
#9
Robin_Bad:
DriverCat, разрешение в данном случае - это не размер картинки, а её "плотность", именуемая DPI и используемая ТОЛЬКО при печати, так что сейчас нам это не нужно.

Покажите уж картинку-то, даже если она неприличная :)

Думаете, эта плотность тут не причем?

Вот она (вполне приличная, просто на фотохостинг не загружалась):

http://narod.ru/disk/25146164000/%D0%BD%D0%B5%20%D1%87%D0%B8%D1%82%D0%B0%D0%B5%D1%82.jpg.html

Robin_Bad
На сайте с 24.12.2007
Offline
85
#10

DriverCat, битая ссылка: 404

Плотность точно не при чём :)

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий