2014-12-19 2 views
0

У меня проблема с Chrome, где он печатает изображения в оттенках серого с моего сайта с красным наложением. Это известная ошибка с Chrome, которая предположительно фиксируется, но пока мне не нужно найти способ правильно настроить мои изображения. Я нашел этот взлом в теме о проблеме, которая упоминает imagemagick:Попытка выполнить функцию imagemagick.js в javascript; Как использовать Processing.js для идентификации и преобразования изображения?

Я обнаружил, что это происходило с полутонами в формате jpg. Используя imagemagick, я смог воспроизводить массовые изображения, чтобы избежать этой проблемы, используя следующие команды.

если identify -format "%r" file.jpg возвращает "PsuedoClass Серый" или "PsuedoClassGray" затем запустите следующую: convert file.jpg -type Truecolor file.jpg

Однако я imagemagick.js не работает; Я попытался использовать его и получил ошибку «require not defined», и обнаружил, что я не могу использовать скрипт node.js в своем браузере. По-видимому, Processing.js должен быть приличной библиотекой javascript, чтобы имитировать imagemagick, но я не могу понять, как делать то же самое. Это то, что я пытался сделать с ImageMagick:

im.identify(['-format', '%wx%h', '@Model.DatabaseName' + '.jpg'], function(err, output) { 
    if (err) throw err; 
    // if output returns PsuedoClass Gray, do im.convert 
}); 

Как я могу сделать это с Processing.js, или есть другая библиотека, которую я должен использовать, чтобы сделать это?

+0

Вы упомянули "не может использовать Node.js в браузере". Вы имели в виду ваш сервер? Где вы пытаетесь запустить 'convert'? Я просмотрел ваш http://oceanstatejoblot.com/_images/coupon/104106_BW.jpg образ, и он отлично смотрелся в моей версии Chrome 39.0.2171.95m. 'ident' сообщает об этом как PseudoClassGray. –

+0

Если вы попытаетесь напечатать это изображение, оно будет напечатано красным цветом –

ответ

0

Ваш лучший обходной путь, чтобы изменить код на сервере, который преобразует исходный цвет JPEG в B & W. Если вы уже используете ImageMagick convert для этой работы, еще несколько аргументов командной строки дадут вам файл полноцветный содержащий изображение B & W. Вам не нужно делать это как второй convert.

Для решения на основе браузера processing.js является излишним. Это работает для меня:

<!doctype html> 
<html><head></head><body> 
<img src="http://www.oceanstatejoblot.com/_images/coupon/049683_Final.jpg"> Final.jpg<br><br> 
<img id="bw1" src="http://www.oceanstatejoblot.com/_images/coupon/049683_BW.jpg"> BW.jpg<br><br> 
<canvas id="bw2" width="352" height="245"></canvas> Canvas<br> 
<script> 
window.onload = function() { 
    document.getElementById("bw2").getContext("2d").drawImage(document.getElementById("bw1"), 0, 0); 
}; 
</script> 
</body></html> 

Chrome Print Preview:

enter image description here

 Смежные вопросы

  • Нет связанных вопросов^_^