• ベストアンサー

Javaでペイントソフトを作りたい

Javaを最近学んでいるんですが… eclipseというものを使っています。 そこでYoutubeをやっているので YoutubeとかTwitterとかのヘッダー画像、サムネイルを作成するソフトウェアを作りたいです サイズのあった画像を作成し、それをペイントツールみたいに描けるツールが作りたいです しかし、Javaがあんまりわからず どう作れば良いのか検討もわかりません… なかなか暇もなく… 自分で作ってみたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • maiko0333
  • ベストアンサー率19% (839/4401)
回答No.1

絵を描くならこんな感じ import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; import java.lang.Math; public class Test10 { public static void main(String[] args) { int r = (args.length > 0)? Integer.parseInt(args[0]):100; int n = (args.length > 1)? Integer.parseInt(args[1]):16; int x, y, x1, y1; try { BufferedImage image=new BufferedImage(r*2+10,r*2+10,BufferedImage.TYPE_INT_RGB); Graphics2D g2d=image.createGraphics(); g2d.setBackground(Color.WHITE); g2d.clearRect(0,0,r*2+10,r*2+10); g2d.setColor(Color.BLACK); x1 = r; y1 = 0; for( int i = 1; i <= n; i++ ) { x = (int) Math.round( ( r * Math.cos( i * 360.0 * Math.PI / 180.0 / n ) ) ); y = (int) Math.round( ( r * Math.sin( i * 360.0 * Math.PI / 180.0 / n ) ) ); System.out.println("x=" + x + "y=" + y); g2d.drawLine( x1 + r + 5, y1 * (-1) + r + 5, x + r + 5, y * (-1) + r + 5 ); x1 = x; y1 = y; } ImageIO.write(image, "JPEG", new File("c:\\test10.jpg")); } catch(Exception e) { e.printStackTrace(); } } }

Ryokutya2
質問者

お礼

わざわざありがとうございます…

Ryokutya2
質問者

補足

エラー: メイン・クラスtest.javaが見つからなかったかロードできませんでした とでてしまいます… どうすればいいんですか…Eclipseをつかってやるんですか? すいません、いろいろきいて… 初心者ですいません

その他の回答 (3)

  • maiko0333
  • ベストアンサー率19% (839/4401)
回答No.4

これ、半径100で16角形を書いています。 java Test 200 5 にすると半径200、5角形になりますよ。

Ryokutya2
質問者

お礼

すごいです!! ありがとうございます!!

  • maiko0333
  • ベストアンサー率19% (839/4401)
回答No.3

>ImageIO.write(image, "JPEG", new File("c:\\test10.jpg")); ImageIO.write(image, "JPEG", new File("c:\\どこかのディレクトリー\\test10.jpg")); c:の直下にはおけないことがあります。 どこかのディレクトリーにおいてください。

Ryokutya2
質問者

お礼

おお!?なんかすごそうな丸がかけました! ありがとうございます!

Ryokutya2
質問者

補足

無事出来ました… これをどう応用すればいいかまだ、わかりませんが がんばります!!

  • maiko0333
  • ベストアンサー率19% (839/4401)
回答No.2

>public class Test10 { としているので、Test10.javaというファイル名で作らないといけないです。 Test.java にするなら public class Test { にすればよいです。

Ryokutya2
質問者

お礼

ありがとうございます!!!

Ryokutya2
質問者

補足

まいどすいません… x=92y=38 x=71y=71 x=38y=92 x=0y=100 x=-38y=92 x=-71y=71 x=-92y=38 x=-100y=0 x=-92y=-38 x=-71y=-71 x=-38y=-92 x=0y=-100 x=38y=-92 x=71y=-71 x=92y=-38 x=100y=0 java.io.FileNotFoundException: c:\test10.jpg (アクセスが拒否されました。) at java.io.RandomAccessFile.open0(Native Method) at java.io.RandomAccessFile.open(RandomAccessFile.java:316) at java.io.RandomAccessFile.<init>(RandomAccessFile.java:243) at javax.imageio.stream.FileImageOutputStream.<init>(FileImageOutputStream.java:69) at com.sun.imageio.spi.FileImageOutputStreamSpi.createOutputStreamInstance(FileImageOutputStreamSpi.java:55) at javax.imageio.ImageIO.createImageOutputStream(ImageIO.java:419) at javax.imageio.ImageIO.write(ImageIO.java:1530) at Test10.main(Test10.java:39) java.lang.NullPointerException at javax.imageio.ImageIO.write(ImageIO.java:1538) at Test10.main(Test10.java:39) こんなエラーが…

関連するQ&A