#javascript #internet-explorer-11 #microsoft-edge
#javascript #internet-explorer-11 #microsoft-edge
Вопрос:
У нас есть приложение на C # и JavaScript, которое использует chart.js чтобы создать диаграмму. У нас есть требование скопировать это изображение в буфер обмена для вставки в PowerPoint.
Из-за ограничений безопасности в JavaScript нашим решением было взять диаграмму и преобразовать ее в изображение с помощью toBase64Image и отобразить это изображение во всплывающем окне, созданном на JavaScript. Пользователь может использовать Edge или IE11, чтобы щелкнуть правой кнопкой мыши и выбрать Копировать или Копировать изображение (в зависимости от браузера), чтобы затем вставить его в PowerPoint.
Проблема возникает, когда изображение вставляется в PowerPoint, Paint или Excel (оно отлично работает в Word). Цвет фона меняется с белого на черный. Это не негативное изображение, потому что все остальные цвета изображения остаются неизменными. Проблема в том, что некоторые части графика изначально черные, а на черном фоне они теряются.
Я искал код для упреждающего изменения цвета фона, чтобы посмотреть, поможет ли это, но мне пока не удалось реализовать ни один код, который я нашел.
Что мне нужно, так это иметь возможность скопировать изображение и вставить его в PowerPoint с белым фоном.
Комментарии:
1. У некоторых программ есть проблемы с прозрачностью. Что происходит, если скопировать изображение из Word в Paint? Файлы JPEG не могут быть прозрачными.
2. На первый взгляд, вполне вероятно, что ваше изображение прозрачное, что приводит к тому, что незакрашенные пиксели в некоторых средах становятся черными. Однако для уверенности требуется дополнительная информация.
3. @Terus Если я скопирую изображение из Word в Paint и т. Д., Тогда Все работает нормально. Белый фон остается белым.
4. @Yidna Это звучит логично. Если вы знаете решение для изменения прозрачности, пожалуйста, дайте мне знать. Если нет, то я начну искать это решение в Интернете. Спасибо за предложение.
Ответ №1:
Прозрачные фоны иногда отображаются как черные.
Это chart.js В GH issue есть фрагмент кода для настройки цвета фона.
Chart.plugins.register({
beforeDraw: function(chartInstance) {
var ctx = chartInstance.chart.ctx;
ctx.fillStyle = "white";
ctx.fillRect(0, 0, chartInstance.chart.width, chartInstance.chart.height);
}
});
Комментарии:
1. Я смотрю на то, как реализовать этот код. Я не писал код, который использует chart.js и до этой задачи у меня не было никакого опыта в этом. Мне еще многое предстоит понять во всей этой структуре.
2. Потрясающе! Я заставил его работать, и он работает отлично. Большое вам спасибо.