今日、先生は私が200以上の写真を白い背景に置き換えるのを手伝ってほしいと思っていました。写真のほとんどは青と赤です。
PSを使用しますか?いいえ! Javaを使用してください! !
はい、私の最初の反応は、Javaを使用して、インターネット上で画像ピクセルを取得するためのソースコードを見つけることでした。動きをした後、私はそれを上げて、200枚以上の写真を処理するのに30分かかりました。
/***関数:*青底のインクライトをホワイトボトムに変換します*主に数百または数千の写真で処理できます* @author zhao junfu**/public class imagecolordemo {public static void main(string args [])throws ioexception {/** ** file dir = file = fir = fir = fir = file dir exceptory {/** / ***ディレクトリ内の写真をリストし、配列*/ file [] files = dir.listfiles()を取得します。 / *** ARRAYのトラバース*/ for(int x = 0; x <files.length; x ++){/ *** rgbアレイを定義します。 / ***画像の処理に使用されるバッファリングストリーム*/ bufferedimage bi = null; { / *** 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( "in int int"+files [x] .getname()); /***ここに画像のピクセルがあります。画像の背面色は処理されるため、指定されたピクセルの色はターゲット色*に置き換える必要があります*ここには、長さと幅で各ピクセルを通過します*/ for(int i = minx; i ++){for(int j = miny; j <heigh; j ++) / ** *指定されたピクセル(i、j)、 */ int pixel = bi.getrgb(i、j)でRGB値を取得します。 / *** 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*判断が可決され、ピクセルを白 */ 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をもっとサポートすることを願っています。