歴史ものの小説を読んで、任意の風景を鉄格子のなかからみたような画像を作成しようと思いました。
ただ、正確に等間隔で複数の直方体を描画するのは、手作業だと大変ですので、唯一使えるJavaを利用して画像を加工しようと考えました。
PCのディレクトリからJavaで読み込んだjpg画像に、画像のピクセル単位で、横40pxにつき10pxに黒線を入れる処理を行いたいと思います。
つまり200px*100pxの画像なら、横から30-40、70-80、110-120、150-160、190-200のpxに縦の長さ100px黒線を入れる、という感じです。
ただJavaは基本をマスターしたのですが、Java2Dは使用したことがなく、どうすればいいのか皆目見当がつきません。
丸投げなので申し訳ないのですが、どなたか指定した処理をするJavaプログラムのコードのお手本を書いていただけないでしょうか。
自分で作れと言われれば返す言葉もないのですが、私自身も初学者ながらJavaを勉強中ですので、きれいなコードを見てみたいという気持ちもあります。
Java2Dの本は先日Amazonで注文しましたので、ご教示いただいたコードの意味を一つ一つ調べ上げて理解し、勉強し、そこから自身の画像処理の技術を発達させ、よりJavaプログラミングの研さんに励みたいと思います。
どなたかご教示のほど、どうかよろしくお願いします。
No.1ベストアンサー
- 回答日時:
こんにちは。
サンプルとしては、こんな感じでしょうか。
java DrawLine c:\test.jpg
みたいな感じで使います。
(コンパイルするときは全角スペースを半角スペースに置換してからにしてください)
public class DrawLine {
public static void main(String[] args) {
if (args.length < 1)
System.exit(1);
try {
File file = new File(args[0]);
BufferedImage image = ImageIO.read(file);
drawImage(image);
ImageIO.write(image, "jpeg", new File(file.getParent(), "new.jpg"));
} catch (IOException ex){
System.out.println("画像ファイルのアクセスに失敗しました。");
System.exit(1);
}
}
static BufferedImage drawImage(BufferedImage image) {
Graphics2D g = image.createGraphics();
g.setColor(Color.BLACK);
int height = image.getHeight();
int width = image.getWidth();
for (int x = 30; x < width; x += 40) {
g.fillRect(x, 0, 10, height);
}
g.dispose();
return image;
}
}
ご丁寧な回答ありがとうございます。
大変参考にさせていただきました。最下部を編集することでいろいろ応用が効きそうですね。
頑張って理解したいと思います。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- その他(プログラミング・Web制作) 次に、楽天のアジャイル就活に参加して、1日で内定を獲得できる。私は大企業に就職できる? 2 2022/04/17 13:38
- C言語・C++・C# C#の基本文法が詳しく書かれている教科書的な本ありますか 2 2023/02/11 03:48
- Java JavaでWebページ作成 7 2023/07/21 21:09
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Ameba(アメーバブログ) アメブロは、HTMLのタグの入力を許さないブログ・サイトですか? 1 2023/06/18 18:48
- ホームページ作成・プログラミング アメーバ・ブログは"HTMLタグ"を許可してないのですか? 2 2023/06/17 21:08
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- その他(法律) Pinterestにある画像を利用・引用して絵を描きたいのですが、これは著作権に違反しませんか? 1 2022/07/11 04:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c# デリゲート関連の命名について
-
C++からC#のdllを参照する際、...
-
java spring でエラーが出て困...
-
(Swing)JTextFieldを半角のみ入...
-
sin曲線とcos曲線を描くプログ...
-
Javaでポインタ的なことはでき...
-
式の型は配列型で int に解決済...
-
「配列定数は、イニシャライザ...
-
ビープ音をなめらかに鳴らしたい
-
共有メモリについて
-
C#での画像ファイルをドラッグ...
-
行の途中から読み込む方法
-
複数のボタンを配置し、それぞ...
-
javaのエラーの意味がわかりま...
-
JAVAでCの関数ポインタのような...
-
java 長さの異なる配列の代入
-
三目並べ(Tick-Tack-Toe)をJav...
-
DataSet(DataTable)の使い方
-
javaでcsvファイル読込時の改行...
-
intが負の時に投げる例外はあり...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javaでcsvファイル読込時の改行...
-
java spring でエラーが出て困...
-
DataSet(DataTable)の使い方
-
「配列定数は、イニシャライザ...
-
JUnit4のアノテーションについて
-
C#で実行時にメソッドの返り値...
-
JAVA エラー 式の開始が不正で...
-
JAVAでCの関数ポインタのような...
-
c# デリゲート関連の命名について
-
java streamでenum配列への変換
-
intが負の時に投げる例外はあり...
-
Java 初心者 int型の取り扱い方
-
C++からC#のdllを参照する際、...
-
アンマネージDLLで、ダイアログ...
-
【C#】フォームをなめらかに移動
-
(Swing)JTextFieldを半角のみ入...
-
Javaで簡単なアニメーションを...
-
javaのエラーの意味がわかりま...
-
C#で判断文(三択)の省略形は...
-
共有メモリについて
おすすめ情報