解説動画
画像を加工する例です。グレースケール化と、文字・図形の追加です。
■動画はこちら
■Youtube版の解説で使用しているソースコード
 動画と一緒にこちらも参考にどうぞ。
1つめ – カラーの画像ファイルを白黒(グレースケール)の画像ファイルに変換する
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | import java.awt.Color; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class PixelColorTest3 {     public static void main(String[] args) {         try {             //画像ファイルを読み込む              BufferedImage imgOrg = ImageIO.read(new File("c:\\test\\hana.png"));              //コピー先の画像ファイル用のイメージを用意する              BufferedImage imgNew = new BufferedImage(imgOrg.getWidth(),imgOrg.getHeight(), BufferedImage.TYPE_4BYTE_ABGR);              //ピクセル単位で新しいイメージに色をコピー             for(int y=0 ; y<imgOrg.getHeight() ; y++) {                 for(int x=0 ; x<imgOrg.getWidth() ; x++) {                     //座標(x,y)にあるピクセルの色を抽出(x=ヨコ y=タテ)                     Color color = new Color(imgOrg.getRGB(x, y));                     //ピクセルの色の成分                     int colorRed = color.getRed();        //赤                     int colorGreen = color.getGreen();    //緑                     int colorBlue = color.getBlue();    //青                     int colorAlpha = color.getAlpha();    //不透明度                     //RGB各値の平均値を求める                     int colorAvg = (color.getRed() + color.getGreen() + color.getBlue()) / 3;                     //RGB各値の平均値をもとにカラーを再構築                     Color color2 = new Color(colorAvg, colorAvg, colorAvg, colorAlpha);                     //コピー先の同一座標上にピクセルの色をセット                     imgNew.setRGB(x, y, color2.getRGB());                 }             }             //画像ファイルを出力             ImageIO.write(imgNew, "png", new File("c:\\test\\hana1.png"));         } catch (IOException e) {             e.printStackTrace();         }     } } | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; public class ImageTest2 {     public static void main(String[] args) {         try {             //画像ファイルを読み込む             BufferedImage img = ImageIO.read(new File("c:\\test\\hana.png"));             //描画操作のグラフィックスオブジェクトを取得             Graphics g = img.getGraphics();             //フォント指定             g.setFont(new Font("MS Pゴシック", Font.BOLD, 128));             //             //描画(左上のほう)             //             //花             g.setColor(Color.WHITE);             g.fillRect(100, 100, 140, 140);             g.setColor(Color.BLACK);             g.drawString("花", 105, 215);             //は             g.setColor(Color.YELLOW);             g.fillOval(280, 100, 140, 140);             g.setColor(Color.RED);             g.drawString("は", 285, 215);             //な             g.setColor(Color.GREEN);             g.fillRect(460, 100, 140, 140);             g.setColor(Color.WHITE);             g.drawString("な", 470, 215);             //下線             g.drawLine(100, 270, 600, 270);             //使い終わったので、グラフィックスを破棄             g.dispose();             //加工したイメージをファイル出力             ImageIO.write(img, "png", new File("c:\\test\\hana2.png"));         }catch(Exception e) {             e.printStackTrace();         }     } } | 













