Доброе время суток. Вот решил выложить свое решение, как я сделал водяной знак.
1. Я решил изменить одну стандартную функцию, а именно: если открыть редактор картинок, там где можно поворачивать, резать, делать картинку бесцветной, есть функция "Подписать картинку" - значек типа копирайт. Вот его я и изменил под свои нужды.
2. Нашел файл: core_fileinput.js у меня он лежит тут /bitrix/js/main/core
3. Изменил в нем часть кода: строка 2781(у меня)
этот код:
на этот:
Ну как бы получается, что нажимая кнопочку копирайт в редакторе, я вписываю текст (например адрес сайта), а картиночка сама уже там.
У меня все пока работает, сам особо не рулю в этом все, пришел к этому с трудом, но сам. И что мне нравится, что можно покрыть водяным знаком картинки выборочно, а не все поливом.
Спасибо за внимание, надеюсь все доступно.
1. Я решил изменить одну стандартную функцию, а именно: если открыть редактор картинок, там где можно поворачивать, резать, делать картинку бесцветной, есть функция "Подписать картинку" - значек типа копирайт. Вот его я и изменил под свои нужды.
2. Нашел файл: core_fileinput.js у меня он лежит тут /bitrix/js/main/core
3. Изменил в нем часть кода: строка 2781(у меня)
этот код:
| Код |
|---|
posterApply : function(msg)
{
if (msg)
{
this.stack.add(this.getCopyCanvas());
var cnv = this.getWorkCanvas(true),
ctx = cnv.getContext("2d"),
size = Math.min(cnv.width, cnv.height) / 10;
ctx.fillStyle = "black";
ctx.fillRect(0, 0, cnv.width, size);
ctx.fillRect(0, cnv.height - 2 * size, cnv.width, 2 * size);
ctx.fillRect(0, 0, size, cnv.height);
ctx.fillRect(cnv.width - size, 0, size, cnv.height);
ctx.strokeStyle = "white";
var border = 5;
ctx.strokeRect(size - border, size - border,
cnv.width - (size * 2) + 2 * border,
cnv.height - (size * 3) + 2 * border);
ctx.fillStyle = "white";
ctx.textAlign = "center";
ctx.textBaseline = "middle";
ctx.font = size + "px marketing";
ctx.fillText(msg, cnv.width / 2, cnv.height - size, cnv.width);
this.set(cnv, false);
this.changed = true;
}
},
|
| Код |
|---|
posterApply : function(msg)
{
if (msg)
{
this.stack.add(this.getCopyCanvas());
var img = new Image();// Создаётся объект Image
var cnv = this.getWorkCanvas(true),
ctx = cnv.getContext("2d"),
size = Math.min(cnv.width, cnv.height) / 30;
ctx.fillStyle = "transparent";// Делаем фон прозрачным
img.src = '/images/logo/logo01.png';// Путь к водяному знаку
ctx.drawImage(img, 20, 20, 200, 200); // drawImage(img, x, y, width, height);
ctx.fillStyle = "white";
ctx.textAlign = "center";
ctx.textBaseline = "middle";
ctx.font = size + "px marketing";
ctx.fillText(msg, cnv.width / 10, cnv.height - size, cnv.width);
this.set(cnv, false);
this.changed = true;
}
}, |
Ну как бы получается, что нажимая кнопочку копирайт в редакторе, я вписываю текст (например адрес сайта), а картиночка сама уже там.
У меня все пока работает, сам особо не рулю в этом все, пришел к этому с трудом, но сам. И что мне нравится, что можно покрыть водяным знаком картинки выборочно, а не все поливом.
Спасибо за внимание, надеюсь все доступно.