Я работаю над веб -сайтом создания подписи электронной подписи для моей компании. У меня есть фоновое изображение подписи электронной почты на веб -сайте, и я использую холст, чтобы написать текст через изображение. Изображение, которое я использую, в 3 раза больше, чем то, что отображается на веб -сайте. Это так, когда я уменьшаю его до правильного размера, он все еще высокого качества на веб -странице. В 3 раза больше при вставке моего почтового клиента. Я также пытался отобрать холст в 2 раза или 3 раза, а затем увеличил его до 1x при его копировании, но он становится пиксельным беспорядком, когда я это делаю. Я новичок в этом, поэтому я использовал много внешнего ресурса, потому что я еще не все это понимаю.function copySignature() {
const signatureElement = document.getElementById('signature-image-wrapper');
html2canvas(signatureElement, { scale: 1 }).then(canvas => {
canvas.toBlob(blob => {
const item = new ClipboardItem({ "image/png": blob });
navigator.clipboard.write([item]).then(() => {
alert("Signature image copied to clipboard!");
}, err => {
alert("Failed to copy image to clipboard.");
console.error(err);
});
});
});
}
< /code>
код 2 - что я использую для изображения 3: < /p>
function copySignature() {
const signatureElement = document.getElementById('signature-image-wrapper');
html2canvas(signatureElement, { scale: 3 }).then(canvas => {
// Resize to 450px wide, keeping aspect ratio
const targetWidth = 450;
const scaleFactor = targetWidth / canvas.width;
const targetHeight = canvas.height * scaleFactor;
const resizedCanvas = document.createElement('canvas');
resizedCanvas.width = targetWidth;
resizedCanvas.height = targetHeight;
const ctx = resizedCanvas.getContext('2d');
ctx.drawImage(canvas, 0, 0, targetWidth, targetHeight);
resizedCanvas.toBlob(blob => {
const item = new ClipboardItem({ "image/png": blob });
navigator.clipboard.write([item]).then(() => {
alert("Signature image copied to clipboard!");
}, err => {
alert("Failed to copy image to clipboard.");
console.error(err);
});
});
});
}
< /code>
Изображение 1 - Canvas на веб -сайте:
Введите описание изображения здесь < /p>
Изображение 2 - Все шкалы в почтовом клиенте:
Введите описание изображения здесь < /p>
Изображение 3 - рендерин>
Подробнее здесь: https://stackoverflow.com/questions/796 ... xtra-large
HTML2Canvas изображение, вставленное либо размытым, либо очень большим ⇐ Html
Программисты Html
1748480984
Anonymous
Я работаю над веб -сайтом создания подписи электронной подписи для моей компании. У меня есть фоновое изображение подписи электронной почты на веб -сайте, и я использую холст, чтобы написать текст через изображение. Изображение, которое я использую, в 3 раза больше, чем то, что отображается на веб -сайте. Это так, когда я уменьшаю его до правильного размера, он все еще высокого качества на веб -странице. В 3 раза больше при вставке моего почтового клиента. Я также пытался отобрать холст в 2 раза или 3 раза, а затем увеличил его до 1x при его копировании, но он становится пиксельным беспорядком, когда я это делаю. Я новичок в этом, поэтому я использовал много внешнего ресурса, потому что я еще не все это понимаю.function copySignature() {
const signatureElement = document.getElementById('signature-image-wrapper');
html2canvas(signatureElement, { scale: 1 }).then(canvas => {
canvas.toBlob(blob => {
const item = new ClipboardItem({ "image/png": blob });
navigator.clipboard.write([item]).then(() => {
alert("Signature image copied to clipboard!");
}, err => {
alert("Failed to copy image to clipboard.");
console.error(err);
});
});
});
}
< /code>
код 2 - что я использую для изображения 3: < /p>
function copySignature() {
const signatureElement = document.getElementById('signature-image-wrapper');
html2canvas(signatureElement, { scale: 3 }).then(canvas => {
// Resize to 450px wide, keeping aspect ratio
const targetWidth = 450;
const scaleFactor = targetWidth / canvas.width;
const targetHeight = canvas.height * scaleFactor;
const resizedCanvas = document.createElement('canvas');
resizedCanvas.width = targetWidth;
resizedCanvas.height = targetHeight;
const ctx = resizedCanvas.getContext('2d');
ctx.drawImage(canvas, 0, 0, targetWidth, targetHeight);
resizedCanvas.toBlob(blob => {
const item = new ClipboardItem({ "image/png": blob });
navigator.clipboard.write([item]).then(() => {
alert("Signature image copied to clipboard!");
}, err => {
alert("Failed to copy image to clipboard.");
console.error(err);
});
});
});
}
< /code>
Изображение 1 - Canvas на веб -сайте:
Введите описание изображения здесь < /p>
Изображение 2 - Все шкалы в почтовом клиенте:
Введите описание изображения здесь < /p>
Изображение 3 - рендерин>
Подробнее здесь: [url]https://stackoverflow.com/questions/79642954/html2canvas-image-pasting-either-blurry-or-extra-large[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия