Разработка электроники,

Систем автоматики,

Программного обеспечения

8(981)186-50-82

ООО "Антех ПСБ",
Санкт-Петербург

anteh@bk.ru

antehru@gmail.com

©

Apache watermark virtualhost. "Инвертирование" FilesMatch

27.01.2016 https://anteh.ru

В httpd.conf добавляем:

ExtFilterDefine Watermark_jpeg mode=output intype=image/jpeg \
cmd="/usr/local/bin/composite -geometry +10+10 -watermark 20.0 /DirToWatermarkFile/antehwatermark.png - -" ExtFilterDefine Watermark_png mode=output intype=image/png \
cmd="/usr/local/bin/composite -geometry +10+10 -watermark 20.0 /DirToWatermarkFile/antehwatermark.png - -"
ExtFilterDefine Watermark_gif mode=output intype=image/gif \
cmd="/usr/local/bin/composite -geometry +10+10 -watermark 20.0 /DirToWatermarkFile/antehwatermark.png - -"

Какие модули апача включить, порты поставить и параметры для своего случая прописать, разбираемся по ходу дела. Минимум нужно включить ext_filter_module для апача и поставить /usr/ports/graphics/ImageMagick порт

В virtualhosh соответствующего хоста/сайта в httpd-vhosts.conf:

<VirtualHost *:80>    
ServerName site.ru
ServerAlias www.site.ru
ServerAdmin sadmin@mail.ru
...

<Directory "/some/dir/site.ru">
# Wathermark for all without cnc6090.jpg krate.jpg
<FilesMatch "[^(^(cnc6090\.jpg|krate\.jpg)$)]">
AddOutputFilter Watermark_jpeg jpg
AddOutputFilter Watermark_png png
AddOutputFilter Watermark_gif gif
</FilesMatch>
...

</Directory>

AddOutputFilter при необходимости можно задать в одну строку. Не на все файлы нужно накладывать watermark. Через FilesMatch можно указать файлы на которые не нужно накладывать watermark, как на примере выше. Это можно назвать инверсией FilesMatch т.е. обрабатываются все файлы, кроме тех, что перечислены в квадратных скобках. [^ ...] отрицание, (^(file1\.ext|file2\.ext|file3\.ext|file4\.ext)$) -перечисление файлов, на которые не будет накладываться watermark

Copyright ©Новиков Алексей Александрович,

2012-2017 Санкт-Петербург, 197372, ООО "Антех ПСБ",

anteh собака bk.ru