2016-07-12 9 views
-1

Это сообщение было удалено для отчетов полного кода и отрицательных оценок.Мне нужно преобразовать изображение в оттенки серого, затем раскрасить диапазоны от серого до новых цветов

+1

Вы уверены, что приложение достигло вызова 'ImageIO.write'? Вы завернули все это в попытку, где улов пуст (что плохое вуду, ИМО). Добавьте туда некоторую регистрацию и убедитесь, что вы не молчаливо проглатываете исключение. – nasukkin

+0

Я привел пример в своем ответе ниже. В общем, это плохой стиль, чтобы поймать исключение, а затем ничего не делать с ним. В моем примере я просто обернул и повторно выбрал исключение. Этот подход является тупым, но он прекрасно подчеркивает, где находится непосредственная проблема. – nasukkin

+0

Возможно, я мог бы. Однако я не собираюсь. Запишите ошибку, определите строку в коде, в которой произошла ошибка, обратитесь к документации AWT для API, который вы вызываете, и исправление должно быть очевидным для вас. Основной вывод здесь заключается в том, что ведение журнала (в частности, ошибки протоколирования) и консультации с документацией API - это бесценный навык, который сделает вас мощным кодером. – nasukkin

ответ

0

Я внесла некоторые изменения в ваш код и попробовал его. Модификация я сделал было сточный-блока:

catch (Exception e) { 
    throw new RuntimeException(e); 
} 

Когда я побежал, я получил следующее:

Exception in thread "main" java.lang.RuntimeException: java.lang.IllegalArgumentException: Color parameter outside of expected range:  Red Green Blue 
    at Colorize.<init>(Colorize.java:64) 
    at Colorize.main(Colorize.java:70) 
Caused by: java.lang.IllegalArgumentException: Color parameter outside of expected range: Red Green Blue 
    at java.awt.Color.testColorValueRange(Color.java:310) 
    at java.awt.Color.<init>(Color.java:395) 
    at java.awt.Color.<init>(Color.java:369) 
    at Colorize.<init>(Colorize.java:55) 
    ... 1 more 

Итак, вы удара об ошибке, прежде чем написать свой вывод. Я, конечно, не эксперт, когда речь заходит о AWT, но похоже, что ваш код создает недопустимые значения цвета. Вам нужно будет это учесть.

+0

@ 0tom123546789 Исключение указывает, что вы строите плохой объект «Цвет» в строке 55 вашего примера кода, где вы создаете переменную 'newColor'. Пожалуйста, ознакомьтесь с документацией AWT о допустимом диапазоне входных параметров. Я не могу вам точно сказать, что вам нужно, только то, что вы нарушаете контракт класса «Цвет» и что он ловит вас. Для вашего собеседования вы можете посмотреть официальный javadoc [здесь] (https://docs.oracle.com/javase/7/docs/api/java/awt/Color.html#Color (int,% 20int,% 20int)). Скорее всего, вы превысите '255' для одного из ваших параметров. – nasukkin