воден знак в движение

1c-bitrix

Зонтов Александър

водният знак при добавяне/актуализиране на елемент за блокиране не отговаря на моя клиент.
Ситуацията е нещо подобно: в галерията, направена на следващия от плъгините jquery, има много различни размери на изображения (визуализация, нормален размер, оригинален размер или оригинален изрез до максимално възможния размер), т.е. 3 стандартни размера за всяко изображение в галерията.

Генерирането на изображения с водни знаци "в движение" е по-универсално от генерирането по събития - оригиналите остават, можете да промените/замените водния знак по всяко време, за всеки стандартен размер няма да е трудно бързо да замените изображението на водния знак и какво е много важно - няма нужда да пишете скрипт, който да регенерира всички изображения за галерии, качени на сайта за дълго време, където няма водни знаци.

При всяко попадение извайването на воден знак изисква много ресурси. Трябва да кеширате. Дойде ми на ум да пренапиша готовата функция CFile: ResizeImageGet ()

Тази функция извиква CFile: ResizeImageFile (), който вече разполага с инструменти за създаване на воден знак чрез функциите за наслагване на текст. Искам хубав .png файл с воден знак. Затова създадох класа си с тези две прекрасни модифицирани функции (почти пълно копиране и поставяне от ядрото, извинете за платното).

Сега трябва да извикам функцията CMyImageResizer: ResizeImageGet () вместо CFile: ResizeImageGet (), където за разлика от 1-ви се появи нов параметър $ arWaterMark

Трябваше да добавя воден знак в долния десен ъгъл на снимката, затова направих този параметър като масив ('path_to_watermark' => $ path, 'margin_x' => $ margin_x, 'margin_y' => $ margin_y); където margin_x и margin_y са отместванията съответно от десния и долния ръб на снимката. и 'path_to_watermark' е пътят към изображението - воден знак .png (имам го с 50% прозрачност)

Така че на живо пример за това как използвам всичко това:
във файла result_modifier.php получавам нови изображения с насложени водни знаци:

Не се нуждая от воден знак за визуализации, затова използвам функцията на естествения битрикс, за по-големи снимки използвам малък воден знак, а на големи снимки „ORIGINAL_PICT“ вече наслагвам голям воден знак (може да се види снимка с голям знак като щракнете върху връзката "пълен размер")