오늘, 교사는 200 장 이상의 사진을 흰색 배경으로 교체하기를 원했습니다. 대부분의 사진은 파란색과 빨간색입니다.
PS를 사용합니까? 아니요! Java를 사용하십시오! !
예, 첫 번째 반응은 Java를 사용하고 인터넷에서 이미지 픽셀을 얻기위한 소스 코드를 찾는 것이 었습니다. 움직인 후, 나는 그것을 만들었고 200 장 이상의 사진을 처리하는 데 30 분이 걸렸습니다.
/*** 기능 :* 배치는 블루 바닥 잉크 조명을 흰색 바닥으로 변환* 주로 수백 또는 수천 개의 사진으로 처리 될 수 있습니다.* @Author Zhao junfu*/public class imagecolordemo {public static void main (string args [])는 ioexception {/*** 이미지 디렉토리를 처리합니다. / *** 디렉토리에 그림을 나열하고 배열을 가져옵니다*/ file [] files = dir.listfiles (); / *** 배열을 가로 지르십시오*/ for (int x = 0; x <files.length; x ++) {/ *** 이미지의 RGB 패턴은 흰색 IS와 같은 3 개의 0-255로 표시되기 때문에 RGB 배열을 정의합니다. / *** 이미지를 처리하는 데 사용되는 버퍼링 스트림*/ bufferedImage bi = null; { / *** imageio를 사용하여 이미지를 버퍼에 읽으려면* / bi = imageio.read (files [x]); } catch (예외 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 ++) {for (int j = miny; j <높이; / ** * 지정된 픽셀 (i, j), */ int pixel = bi.getrgb (i, j)에서 rgb 값을 가져옵니다. / *** rgb*/ rgb에서 값을 얻기 위해 비트 작업을 별도로 수행합니다 [0] = (Pixel & 0xff0000) >> 16; rgb [1] = (픽셀 & 0xff000) >> 8; rgb [2] = (픽셀 & 0xff); /*** 색상 변경 작동을 수행하고 파란색베이스를 흰색베이스로 변경하고 싶습니다. 따라서 그림의 RGB 값이 픽셀의 파란색 범위에 있는지 여부를 결정합니다.* /if (rgb [0] <155 && rgb [0]> 0 && rgb [1] <256 && rgb [1]> 105 && rgb [2] <256 && rgb [2]> 105) {2]. 판단이 통과 된 다음 픽셀을 흰색 */ bi.setrgb (i, j, 0xffffff)로 변경합니다. }}}} system.out.println ( "/t 처리가 완료되었습니다 :"+files [x] .getName ()); System.out.println (); /*** 버퍼 객체를 새 파일에 저장*/fileoutputStream ops = 새 파일 (새 파일 ( "d :/d5/"+x+". jpg")); imageio.write (bi, "jpg", ops); ops.flush (); ops.close (); }}} 위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.