Привет! Как поставщик холста, меня часто спрашивают о том, как экспортировать холст в качестве изображения. Это довольно распространенная потребность, будь то графический дизайнер, художник или просто тот, кто хочет сохранить свои цифровые творения. В этом сообщении я проведу вас по шагам за шагом через процесс, а также поделюсь некоторыми советами и рекомендациями на этом пути.
Во -первых, давайте поговорим о том, почему вы, возможно, захотите экспортировать холст в качестве изображения. Есть много причин. Может быть, вы создали красивую цифровую живопись на холсте, и вы хотите поделиться ею в социальных сетях. Или, возможно, вы работаете над проектом веб -дизайна, и вам нужно сохранить элемент Canvas в качестве изображения для использования в другом месте. Независимо от причины, экспорт холста как изображение может быть действительно полезно.
Теперь на фактический процесс. Есть несколько разных способов сделать это, в зависимости от того, какой язык программирования вы используете. Я сосредоточусь на JavaScript здесь, так как это действительно популярный выбор для работы с Canvases в браузере.
ИспользуяTodataurlметод
Самый простой способ экспортировать холст в качестве изображения в JavaScript - это использованиеTodataurlметод Этот метод возвращает URL -адрес данных, представляющий изображение, содержащееся в холсте. Вот простой пример:
// Получить элемент Canvas const canvas = document.getElementById ('myCanvas'); // Получить URL данных Canvas const datairl = canvas.todataurl (); // Создать новый элемент изображения const img = new Image (); img.src = datairl; // Добавление изображения в документ Document.body.appendchild (img);
В этом примере мы сначала получаем элемент Canvas, используяDocument.getElementByIdПолем Тогда мы называемTodataurlМетод на холсте, чтобы получить URL данных. Мы создаем новый элемент изображения и устанавливаем егоSRCатрибут к URL. Наконец, мы добавляем изображение в документ, чтобы увидеть его.
АTodataurlМетод принимает дополнительный параметр, который указывает формат изображения. По умолчанию он возвращает изображение PNG. Вы можете указать другой формат, такой как JPEG, передавая «Image/JPEG» в качестве параметра:
const datairl = canvas.todataurl ('image/jpeg');
Сохранение изображения в файл
После того, как у вас есть URL -адрес данных, вы можете сохранить его в качестве файла. Вы можете сделать это, создав ссылку для загрузки и моделируя нажмите на нее. Вот пример:
// Получить элемент Canvas const canvas = document.getElementById ('myCanvas'); // Получить URL данных Canvas const datairl = canvas.todataurl ('image/png'); // Создать ссылку на скачивание const link = document.createElement ('a'); link.href = datairl; link.download = 'canvas_image.png'; // Моделируйте нажмите на ссылку ссылки. Click ();
В этом примере мы создаем новый якорный элемент (<a>) и установить свойhrefатрибут к URL. Мы также установилискачатьАтрибут к желаемому имени файла. Затем мы имитируем щелчок по ссылке, используянажиматьМетод, который побуждает пользователя сохранить изображение в качестве файла.
Обработка проблем с перекрестными аоригинами
Если ваш холст содержит изображения из других доменов, вы можете столкнуться с проблемами кросс-инцигина при попытке экспортировать их как изображение. Браузер имеет ограничения безопасности, которые мешают вам получить доступ к данным пикселя изображения из другого домена. Чтобы исправить это, вам нужно установитьпоперечныйАтрибут изображения «анонимно», когда вы загружаете его на холст:
// Создать новый элемент изображения const img = new Image (); img.crossorigin = 'anonymous'; img.src = 'https://example.com/image.jpg'; // ждать, пока изображение загрузит img.onload = function () {// Получить элемент Canvas const canvas = document.getElementByid ('myCanvas'); const ctx = canvas.getContext ('2d'); // нарисовать изображение на холсте ctx.drawimage (img, 0, 0); // Экспорт холста в виде изображения const datairl = canvas.todataurl (); // ...};
УстановивпоперечныйАтрибут «анонимному», вы говорите браузеру, что вы хотите получить доступ к изображению в контексте кроссоригина. Тем не менее, хостинг сервера, который должен поддерживать CORS (обмен ресурсами по перекрестному происхождению) для работы.


Используя библиотеку
Если вы хотите более богатое функциональным решением, вы можете использовать библиотеку, подобнуюCanvas-toblobПолем Эта библиотека предоставляетToblobМетод, который позволяет вам получить объект Blob, представляющий изображение Canvas. Затем вы можете использовать объект Blob для сохранения изображения в файл или загрузить его на сервер.
Вот пример использованияCanvas-toblob:
// Получить элемент Canvas const canvas = document.getElementById ('myCanvas'); // Преобразовать Canvas в Blob Canvas.toblob (function (blob) {// Создать ссылку на скачивание const link = document.createElement ('a'); link.href = url.createobjecturl (blob); link.download = 'canvas_image.png'; // Симуляция ссылки на ссылку.
В этом примере мы называемToblobМетод на холсте и передайте функцию обратного вызова, которая вызывается, когда капля готов. Внутри обратного вызова мы создаем ссылку для загрузки и смоделируем нажмите на нее, чтобы сохранить изображение в качестве файла.
Наши холст
Как поставщик холста, мы предлагаем широкий спектр высококачественных продуктов Canvas. Проверьте нашПроизводители 12 унций окрашены 100% хлопчатобумажной ткань для обуви и домашних сумок, который идеально подходит для изготовления обуви и домашних сумок. У нас также естьХлопковое холст тканевая печатьУслуги доступны, если вы хотите добавить пользовательские проекты на свой холст. И не забывайте о нашем100% окрашенная в хлопок ткань утки, который отлично подходит для различных проектов.
Заключение
Экспорт холста в качестве изображения - действительно полезный навык, и это не так уж и сложно сделать. Используете ли выTodataurlметод, библиотека, какCanvas-toblob, или другой подход, вы сможете с легкостью сохранить свои творения холста в качестве изображений.
Если вы заинтересованы в покупке наших продуктов Canvas, не стесняйтесь обращаться к обсуждению закупок. Мы всегда рады помочь вам найти правильный холст для ваших нужд.
Ссылки
- MDN Web Docs - Canvas API
- Javascript.info - холст
- Документация библиотеки Canvas-Toblob
