В настоящее время я экспериментирую с некоторым сценарием, чтобы взять изображение из картотеки, перенести URL-адрес в HTML-холст, получить ширину / высоту (чтобы вставить в пользовательские поля и изменить размер исходного изображения.
Выше все в порядке в клиентском скрипте - без проблем.
Однако, я хочу знать, это
Как я могу получить изображение с измененным размером в виде файлаобъект (н / файл) и сохраните его в картотеке без вмешательства пользователя.
Существует ли способ работы с холстом HTML из серверного контекста.
Для # 1 это кажется трудным, поскольку модуль N / file недоступен для ClientScript, поэтому, возможно, потребуется отправить его в SuiteLet?
Кое-что из моего кода до сих пор
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var img = new Image();
img.onload = function () {
// set size proportional to image
canvas.height = canvas.width * (img.height / img.width);
// step 1 - resize to 50%
var oc = document.createElement('canvas'),
octx = oc.getContext('2d');
oc.width = img.width * 0.5;
oc.height = img.height * 0.5;
octx.drawImage(img, 0, 0, oc.width, oc.height);
// step 2
octx.drawImage(oc, 0, 0, oc.width * 0.5, oc.height * 0.5);
// step 3, resize to final size
ctx.drawImage(oc, 0, 0, oc.width * 0.5, oc.height * 0.5, 0, 0, canvas.width, canvas.height);
var imageContent = canvas.toDataURL('image/png');
var decodedContent = btoa(imageContent);
scriptContext.currentRecord.setValue({fieldId:'custitem_image1_width', value: img.width})
scriptContext.currentRecord.setValue({fieldId:'custitem_image1_height', value: img.height})
img.src = scriptContext.currentRecord.getValue({fieldId:'custitem_image1_thumb_url'})
Выше работает в настоящее время в CSS pageInit, и у меня есть отдельный скрипт UES beforeLoad, создающий поле INLINEHTML custpage_htmlcanvas
.