По запросам http://drupal.ru/node/24185 выставил модуль на всеобщее обозрение:
http://drupal.org/project/imce_watermark
Пока только дев-версия для тестирования и дополнения.
Изучил как выставлять проекты на друпал.орг, немного муторно для начала, так что возможны "глюки" с архивами, с нумерациями версий и так далее.
Комментарии
Круто! А в чем проблем, что он поддерживает только восьмибитный пнг?
просто нехватка времени. как освобожусь добью, может модуль watermark подключу (если у него апи есть).
для интернет магазина было бы очень удобно. Нет такой задумки совместить, например, с уберкартом?
Попробовал, модуль очень хороший и главное вовремя для меня. Единственно у меня не получается прозрачный фон у watermark. Делаю фотошопом с сохранением для веб. Настройки прилагаю. Подскажите, что не так плиз.
Ну вот только попросил помощь клуба и сразу получилось... поставил в настройках не 128 цветов, а 256... странно, что это помогло но заработало.
kodo - количество цветов к прозрачности не имеет ни какого отношения. Можно и в 2 цветах сделать прозрачность.
Nikit - альфа PNG-шку бы, бо 99% используют её.
PVasili Так вот и я понимаю, что не должно повлиять кол-во цветов... но других настроек не трогал...
А сама прозрачность есть в картинке?
2digital_sword: модуль image вроде имеет свой watermark, насчёт cck image field не скажу.
2kodo: у png есть понятие прозрачности, я не дока в этом деле, но знаю что в фотошопе, например, он видна как шахматная доска на фоне рисунка спросите спецов.
2PVasili "Nikit - альфа PNG-шку бы, бо 99% используют её." - не совсем понял, но я использую imagecopymerge($main_img_obj, $watermark_img_obj, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, variable_get('imce_watermark_alpha', 90)); - указание на альфа-прозрачность, или это нето?
И еще есть такое: предлагают как альтернативу модуль imagecache_actions, она делает ватермарки, но есть одно отличие: она не трогает оригиналы, а иногда это нужно, к тому же настройка сие дела сложнее, чем подтянуть imce к редактору визивиг. p.s. Вот отсюда постараюсь выдрать код для поддержки png другой битности
Есть такой модуль Imagecache Actions, делал через него в свое время.
Полезный модуль!
Nikit пожелание - попробовать использовать imageAPI, я обычно пользуюсь хостингами, где установлен imagemagick - это дело существенно внижает требования php к памяти, так как обрабатывает bitmap в памяти другого процесса. А твоя операция будет держать в памяти сразу 2 изображения, причем оба декомпрессированные .
Nikit Для развития функциональности модуля. Если будет возможность, добавить установку водяного знака на уже существующие картинки, как для создания Thumbnails. Думаю для многих случаев очень полезная вещь.
И еще сомнительно, но может быть интересно, чтобы при закачке изображения вначале накладывался водяной знак, а затем создавались Thumbnails. Но тут спорный момент надо ли это.
Еще раз спасибо за модуль!
При попытке загрузить рисунок IMCE выдает лог:
21:24:46 warning: imagecopymerge(): supplied argument is not a valid Image resource in /home/bla_bla_bla/public_html/modules/imce_watermark/imce_watermark.module on line 197.
21:24:46 warning: imagejpeg(): supplied argument is not a valid Image resource in /home/bla_bla_bla/public_html/modules/imce_watermark/imce_watermark.module on line 161.
У меня что-то с правами на директории или грабли в строках
imagejpeg($im, $dirpath . '/' . $filename);
imagecopymerge($main_img_obj, $watermark_img_obj, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height,
variable_get('imce_watermark_alpha', 90)
);
Drupal 6.14. Модуль установлен в /modules соответственно.
А модуль медленно умирает, а жаль
Модуль не поддерживает прозрачность.
Для этого замените функцию imagecopymerge на imagecopymerge_alpha.
Код функции здесь:
http://www.php.net/manual/en/function.imagecopymerge.php#88456
Nikit, Как научить модуль накладывать водяные изображения не только на .jpg (.jpeg), но и на картинки .gif и .png ?
в файле /modules/imce_watermark/imce_watermark.module (строка 157-161) меняя расширение jpeg на gif или png - работает, то какой пропишешь.
$img = imagecreatefromjpeg($dirpath . '/' . $filename);
$water = imagecreatefrompng($watermark_filepath);
$im = $watermark->create_watermark($img, $water);
imagejpeg($im, $dirpath . '/' . $filename);
хм, только заметил что тут столько комментов, я его совсем забросил, будем исправлять.
В общем идея не изобретать велосипед, а использовать имеющееся, если на сайте будут imagecache + imagecache_actions, то они будут использоваться для рисования водяных знаков (там уже есть ватермарк, плюс конвертация gif,png на jpeg), плюсы - ui настройка. Если нет, то прямые функции рисования ватермарка, возможности которого остануться почти такими же.
да собственно ваш модуль хорош для ватермарков при загрузке через imce.
если дописать после
$img = imagecreatefromjpeg($dirpath . '/' . $filename);
$water = imagecreatefrompng($watermark_filepath);
$im = $watermark->create_watermark($img, $water);
imagejpeg($im, $dirpath . '/' . $filename);
такой код
$water = imagecreatefrompng($watermark_filepath);
$im = $watermark->create_watermark($img, $water);
imagegif($im, $dirpath . '/' . $filename);
$img = imagecreatefrompng($dirpath . '/' . $filename);
$water = imagecreatefrompng($watermark_filepath);
$im = $watermark->create_watermark($img, $water);
imagepng($im, $dirpath . '/' . $filename);
загрузка картинок и наложение водяных знаков будет работать, только после загрузки всплывает от 5 до 10 сообщений об ошибках.
в целом работает, только надо как то правильно доделать...
посмотреть можно тут
http://sdelay-sam.su/user
логин: testimce
пароль test
на странице
http://sdelay-sam.su/imce
пока убрал эти строки, но ошибки при загрузке gif и png (всего что не jpeg) всплывают
Да, хорош! Уже начинает что-то вырисовываться. Теперь нужна лишь работа над ошибками от автора Nikit и соответственно выпуск новой версии.
2 vasilev, кстати потестил (спасибо за выложенный логин и пасс к demo) - т.е. если использовать соответствующие функции imagegif, imagepng, ошибки все равно вылезают?
Да, ошибки лезут, но функционал при этом работает. водяные знаки накладываются. Просто как-то правильно надо это прописать, не так как я...
Нужно просто создать условие вместо этой строки $img = imagecreatefromjpeg($dirpath . '/' . $filename);. То есть если файл jpg то выполнять $img = imagecreatefromjpeg($dirpath . '/' . $filename); если png выполнять imagecreatefrompng итд. Необходимо получить содержимое переменной $filename и ее уже проверять, возможно в ней и содержится имя и расширение файла(у меня получить содержимое этой переменной не получилось :(), ну а потом через регулярное выражение проверять расширение и выполнять вышеуказанные функции
у меня была функция которая читает маймы, как найду, проверю на надежность. Пока у меня дидлайны все как один до 31-ого, после начну cvs-ить - квасить
Народ, а как при помощи Imagecache Actions для всех загружаемых картинок (посредствам IMCE) ресайз сделать? Какое название у пресета imaagecash должно быть, чтобы на все имеджи распространилось?
Думаю никак не свяжешь Imagecache с IMCE
напротив есть масса решений inline insert и тп
Сейчас побочный эффект imce_watermark такой, что позволяет использовать imagecache, только один из actions должен быть "Overlay (watermark)".
p.s. Хотя есть мысль сделать его не побочным, а постоянным
А что такое inline inser, модуль? Если нет, то что и как с этим работать?
Естественно модули: inline insert
ух, наконец-то руки дошли разобраться с GIT. Обновил модуль до branch 2.
Теперь она требует imagecache_canvasactions.module (часть imagecache_actions), и все настройки (позиция, альфа), вопросы о методах и способах добавления ватермарка туда.
Убрал требование imagecache_actions...
Nikit, скажите пожалуйста возможно ли использовать модуль imce watermark для cck image field пытался настроить никак не выходит
2RedDemon: нет, установите http://drupal.org/project/imagecache_actions , добавьте пресет с водяным знаком, и делайте вывод в нодах через него.
Будет ли поддержка для Drupal 7?
привет! Будет, как раз каникулы...
Отличная новость! Если нужно протестировать - обращайтесь
С прошедшими длинными каникулами!
Выставил 7dev.
Заранее спасибо за тестирование!
Ну что народ? Налетаем?