<div dir="ltr"><div class="gmail_extra"><br><br><div class="gmail_quote">6 февраля 2013 г., 22:44 пользователь Михаил Монашёв <span dir="ltr"><<a href="mailto:postmaster@softsearch.ru" target="_blank">postmaster@softsearch.ru</a>></span> написал:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Здравствуйте, Trurl.<br>
<br>
Функционал  весьма  полезный.  Я  б,  например,  на  картинки, которые<br>
сторонние  сайты  запрашивают,  вставлял бы водные знаки. А сейчас 403<br>
выдаю.<br>
<br>
Но  хоть  я  не  сишник,  но  подозреваю,  что сделано не самым лучшим<br>
образом.  При  каждом наложении водного знака зачем-то делается заново<br>
открытие  файла с водным знаком, чтение его с диска (про aio промолчу)<br>
и  создание  изображения.  Всё это можно при старте nginx-а делать или<br></blockquote><div><br></div><div>Разница не слишком велика, при интенсивной нагрузке он все равно будет в буффере системы жить, а зря занимать память тоже не охота. Да и лень )<br>
<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
делать   единожды   при   первой   потребности,   а  потом  много  раз<br>
использовать.  Если  водный знак может меняться, то повесить вотчер на<br>
изменения  файла  и по событию перечитывать его. Зачем-то (подозреваю,<br>
что  это  нужно,  чтобы  иметь  изображение нужного формата/цветности)<br>
делается  аж  три копирования изображений, что наверняка сильно грузит<br>
процессор, если картинка 10 метров, например.<br></blockquote><div><br></div><div>Увы, это единственный известный мне способ не потерять альфаканал при совмещении.<br></div><div>А красивые ватермарки без него не сделать. Да и все равно подразумевается что там стоит expires 40d; минимум и на внешнем кольце все кешируется..<br>
</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
По мелочи: нельзя конфигурировать отступы от края изображения, задавая<br>
их  в  пикселях  или  процентах  ширины  исходного  изображения. Может<br>
кому-то будет полезно влепить водный знак по центру, кстати. И бывает<br>
полезно замостить водным знаком всё изображение: <a href="http://i38.beon.ru/56/31/2483156/paid-avatars/95391b8e2d23c38f93a5559c9a6a22c3.gif" target="_blank">http://i38.beon.ru/56/31/2483156/paid-avatars/95391b8e2d23c38f93a5559c9a6a22c3.gif</a><br>
</blockquote><div><br></div><div>Угу, а еще на лету генерировать ватермарки из текста, отдаваемого субреквестом; менять exif картинки; подбирать из набора подходящую ватермарку под пропорции картинки; автоматически подбирать место для ватермарки исходя из динамики цвета на картинке (причем как искать однотонные места, так и наоборот, по выбору)<br>
</div><div>Короче я сам могу еще много придумать, вот только времени нет это все реализовывать ;)<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
Вопросы:  как  работает,  если  изображение  с  водным  знаком  больше<br>
исходного  изображения.  Или исходное изображение меньше, чем 10х10? И<br>
что с анимированными гифами?<br></blockquote><div><br></div><div>калечит, конечно. Я даже проверку на размеры не делал и вообще весь код был написан прямо в diff файле )) <br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<span class="HOEnZb"><font color="#888888"><br>
--<br>
С уважением,<br>
 Михаил                          mailto:<a href="mailto:postmaster@softsearch.ru">postmaster@softsearch.ru</a><br>
</font></span><div class="HOEnZb"><div class="h5"><br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></div></div></blockquote></div><br></div></div>