Сегодня учитель хотел, чтобы я помог заменить их более 200 фотографий на белом фоне. Большинство фотографий синие и красные.
Использовать PS? Нет! Используйте Java! !
Да, моей первой реакцией было использовать Java и найти исходный код для получения пикселей изображения в Интернете. После того, как я сделал шаг, я сделал это, и потребовалось полминута, чтобы обработать более 200 фотографий.
/*** Функция:* Партия преобразовать свет чернил синего взрыва в бело-боттом* В основном это можно обрабатывать в сотнях или тысячах картинок* @author Zhao Junfu**/public Class ImageColordemo {public static void main (String args []) throws ioException {/*** holeory-обработка. / *** Перечислите изображения в каталоге и получите массив*/ file [] files = dir.listfiles (); / *** Перенос массива*/ for (int x = 0; x <files.length; x ++) {/ *** Определить массив RGB, потому что рисунок RGB изображения представлен тремя 0-255, такими как белый (255,255,255)*/ int [] rgb = new Int [3]; / *** Буферный поток, используемый для обработки изображения*/ bufferedimage bi = null; try { / *** Используйте Imageio, чтобы прочитать изображение в буфере* / bi = imageio.read (files [x]); } catch (Exception e) {e.printstackTrace (); } / *** Получить длину и ширину изображения* / int width = bi.getWidth (); int height = bi.getheight (); int minx = bi.getminx (); int miny = bi.getminy (); System.out.println ("В процессе:"+files [x] .getName ()); /*** Вот пиксели изображения. Поскольку задний цвет изображения должен быть обработан, цвет на указанном пикселе должен быть заменен на целевой цвет* Здесь представляет собой петлю второго слоя, пересекающая каждый пиксель по длине и ширине*/ for (int i = minx; i <width; i ++) {для (int j = miny; j <ehish; j ++) {// system.out.print (bi.jactg; / ** * Получить значение RGB на указанном пикселе (i, J), */ int pixel = bi.getrgb (i, j); / *** Выполните операции битов отдельно, чтобы получить значение на RGB*/ rgb [0] = (Pixel & 0xff0000) >> 16; rgb [1] = (Pixel & 0xff000) >> 8; rgb [2] = (pixel & 0xff); /*** Выполнить операцию по изменению цвета, я хочу изменить синюю основу на белую основу, поэтому я определяю, находится ли значение RGB на картинке в синем диапазоне пикселей* /if (rgb [0] <155 && rgb [0]> 0 && rgb [1] <256 && rgb [1]> 105 && rgb [2] <256 && rgb [2]> 105 ** **** ПРИНЯТЬ ПРИНЯТЬ, затем изменить пиксель на белый */ bi.setrgb (i, j, 0xffffff); }}} System.out.println ("/T обработка завершена:"+files [x] .getName ()); System.out.println (); /*** Сохранить объект буфера в новый файл*/fileOutputStream Ops = new FileOutputStream (New File ("d:/d5/"+x+". Jpg")); Imageio.Write (BI, "JPG", OPS); Ops.flush (); Ops.Close (); }}} Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.