• ベストアンサー

画像の回転

Javaで画像の回転を180度時計回りに回転させたいのですが どのようにしたら良いのでしょうか? Image img = new Image; img = getImage(getDocumentBase(), "images/test.png"); g.drawImage( img, x, y, this); あとimportも何を書けばよいのかもわかりません。 グラフィックスについて詳しく書かれている本も知りたいです。

  • Java
  • 回答数1
  • ありがとう数0

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

  • ベストアンサー
  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.1

Graphics2D g2 = (Graphics2D)g; として、 g2.rotate(......); を使います。 もっと原理的なことは、このページと、このページで使われているプログラムのソースを勉強してみてください: http://java.sun.com/docs/books/tutorial/2d/advanced/transforming.html http://java.sun.com/docs/books/tutorial/2d/advanced/examples/Transform.java

関連するQ&A

  • appletの画像が表示されない

     画像を表示するappletを作ったんです。  コマンドのappletviewerでは確認出来るんですが、IEでは何故か表示されません。何故なんでしょう?  WINXP/IE6.0.2600です。  以下にコードを記述します。 import java.awt.*; import java.applet.*; public class test extends Applet {  Image img;  public void init() {   img = getImage(getDocumentBase(), "test.PNG");  }  public void paint(Graphics g) {   g.drawImage(img, 10, 10, this);  } }

    • ベストアンサー
    • Java
  • JAVAの文法について教えてください。

    JAVAを学習しはじめたばかりの初心者です。 下記のプログラムに関してわからないので教えてください。 下記はtest.gif画像を表示するプログラムなのですが、 イメージを表示するために import java.awt.Graphicsをインポートして、 Image im でオブジェクトを宣言するのはわかるのですが、 通常はこの後に im = new Image() のようにインスタンス化する必要があると思うのですが、 このプログラムにはありません。 なぜ不要なのでしょうか? ********************** import java.applet.Applet; import java.awt.Graphics; import java.awt.Image; public class MyImage extends Applet{ Image im; public void init(){ im = getImage( getDocumentBase(), "test/test.gif" ); } public void paint(Graphics g){ g.drawImage( im ,10,10, this); } }

    • ベストアンサー
    • Java
  • Javaで画素

    Javaについて質問したいことがあります。 Javaでjpgの白黒画像を読み取った後、画像の一番上にある黒画素のY座標を求めたいのですが、うまくいきません。ちなみに、下が現在作っているプログラムです。 どうすれば一番上にある黒画素のY座標を求める事が出来るのでしょうか? 教えてください。お願いします。 import java.awt.*; import java.applet.*; import java.awt.image.MemoryImageSource; import java.awt.image.PixelGrabber; import java.awt.image.*; import java.awt.Graphics; public class image5 extends Applet { Image img; int img_width, img_height; public void init(){ img = getImage(getDocumentBase(), "test.jpg"); } public void paint(Graphics g){ img_width = img.getWidth(this); img_height = img.getHeight(this); g.drawImage(img, 0, 0, this); int pixels[] = new int[img_width * img_height]; PixelGrabber pg = new PixelGrabber(img, 0, 0, img_width, img_height, pixels, 0, img_width); try{ pg.grabPixels(); }catch(InterruptedException e){ System.err.println("interrupted waiting for pixels!"); return; } int tx = 0; int ty = 0; int ti = 0; int maxY = 0; for(ty = 0; ty < img_height; ty++){ while(ti < 1){ for(tx = 0; tx < img_width; tx++){ if((pixels[ty * img_width + tx] & 255) > 128){ maxY = ty; ti++; } } } } } }

  • JavaAppletのプログラム添削をお願いします

    初心者です。宜しくお願いします。 JAVA Appletで、クリックするたびに画像が変わるものを作りたいのですが、上手くいきません。 プログラムの添削をお願い致します。 JAVA Appletを利用し、画面をクリックするたびに画像が変わるアプリを作りたいのですが、上手くいきません。 ※コンパイルは通るのですが、実行しても何も表示されません。 [参考URL]http://www.geocities.jp/supermisosan/javastudy/mousechange.html この、画像を変えただけのものを作れればOKです。 以下、今私の書いたプログラム内容です。 書いたと言っても、コピペして部分部分を変えただけですが‥。 【click.java】 import java.applet.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class click extends JApplet implements MouseListener { Image siro,kiiro,aka2,img; int x=0; Image image[]=new Image[5]; Graphics g; public void init() { addMouseListener(this); image[0]=getImage(getDocumentBase(),getParameter("siro.gif")); image[1]=getImage(getDocumentBase(),getParameter("kiiro.gif")); image[2]=getImage(getDocumentBase(),getParameter("aka2.gif")); image[3]=getImage(getDocumentBase(),getParameter("aka2.gif")); image[4]=getImage(getDocumentBase(),getParameter("aka2.gif")); setBackground(Color.white); } public void paint(Graphics g) { g.drawImage(image[x],0,0,this); } public void mouseClicked(MouseEvent me) { x++; if(x==5) x=0; repaint(); } public void mouseEntered(MouseEvent me) { } public void mouseExited(MouseEvent me) { } public void mousePressed(MouseEvent me) { } public void mouseReleased(MouseEvent me) { } } 【click.html】 <html> <head> <title>test applet</title> </head> <body> <applet code="click.class" width=500 height=500> </applet> <hr> <a href="click.java"> source file </a> </body> </html> 何が足りないのでしょうか? 勉強不足ですみません、宜しくお願い致します!!

  • 【Java】画像表示が出来ない!

    Java初心者です。 Eclipseを使って、Javaアプレットでjpeg画像を表示させようとしたのですが、上手くいきません。表示したい画像をインポートして、このようなコードを書きました。 import java.applet.Applet; import java.awt.*; /* <applet code="クラス名.class" width="497" height="600"> <param name="img" value="img/test.jpg"> </applet>*/ public class クラス名 extends Applet { Image img; public void init() { img = getImage(getDocumentBase() , getParameter("/test.jpg")); } public void paint(Graphics g) { g.drawImage(img , 0 , 0 , this); } } Javaアプレットで実行しても、アプレットは真っ白なままです。GIF画像でも試してみましたが、同じく失敗でした。他のJavaアプレットのプログラム(図形を表示したり)は成功したので、私のパソコンのJavaは問題ないと思います。回答よろしくお願いします。

    • ベストアンサー
    • Java
  • アプレットに画像が表示されません

     今晩は、java初心者です、宜しくお願いします。  下のようなプログラムを書きましたが、画像がアプレットに表示されません。  画像はeclipseで同じプロジェクト(フォルダ)内に置いています。  文法上のエラーは出ておりません。  原因がわかりません宜しくお願いします。 ============================ public class Test extends Applet { MediaTracker tracker ; Image img ; public void init() {   tracker = new MediaTracker( this ) ; img = getImage( getDocumentBase() , "a.jpg" ) ; tracker.addImage( img , 0 ) ; } public void start() {              try { tracker.waitForAll(); } catch (InterruptedException e) { } } public void paint( )      { Graphics g2 = getGraphics(); g2.drawImage( img , 0 , 0 , 50 , 50 , this ) ; } }

    • ベストアンサー
    • Java
  • ★滑らかな画像切り替え★

    アプレットを用いてスライドショーのようなものを作成しようと考えています。 しかしながら、画像を読み込むまでに時間がかかり、滑らかにつなぎたいのに、コマ送りのようになってしまいます。 できる限り断続的ではなく連続に見えるようにしたいと考えているのですが、良い方法はないでしょうか? 画像に関してはJavaScriptの方が有効だとするサイトが多すぎて悩んでいます。 プログラムを載せておきます。尚、画像はどれも800×600のサイズです。 import java.awt.*; import java.applet.*; import java.awt.event.MouseListener; import java.awt.event.MouseEvent; public class S1 extends Applet implements MouseListener {   Image img;   int Flag=0;   public void init()   {     addMouseListener(this);     setSize(800,600);   }   public void paint(Graphics g){     switch(Flag){     case 0:img=getImage(getCodeBase(),"../image/bg001.jpg"); break;     case 1:img=getImage(getCodeBase(),"../image/bg002.jpg"); break;     default:img=getImage(getCodeBase(),"../image/bg003.jpg"); break;     }     g.drawImage(img,0,0,this);   }   public void mouseClicked(MouseEvent e) {     Flag++;     repaint();   }   public void mouseEntered(MouseEvent e) {}   public void mouseExited(MouseEvent e) {}   public void mousePressed(MouseEvent e) {}   public void mouseReleased(MouseEvent e) {} } 改善点などもあれば是非!

    • ベストアンサー
    • Java
  • Java appletプログラムで困ってます。

    市販の本に掲載せれているEclipse下記プログラムを丸写しで打込みコンパイルしました。 それでWEB上で確認した所、オブジェクト動作上(.pngの表示・非表示)では動作している様に思います。 しかし、どうもLANネットワーク(最終的にはRS232C)動作反応がありません プログラムに問題があるのでしょうか? ネットワーク・セキュリティー・ファイヤウォール等に問題があるのでしょうか? まったく見当がつきません。Java言語は初心者です。 ご教授宜しくお願い致します。 import java.applet.Applet; import java.awt.Button; import java.awt.Event; import java.awt.Font; import java.awt.Graphics; import java.awt.Image; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; public class xport002 extends Applet implements Runnable{ boolean sw1,sw2,run; Image img1,img2,img3; String buff; char com; Thread th=null; int port=10001; InetAddress xport_ip=null; Socket xport_socket; DataInputStream socketin; DataOutputStream socketout; public void init(){ try{ xport_ip=InetAddress.getByName(getCodeBase().getHost()); } catch(UnknownHostException e){} try{ xport_socket=new Socket(xport_ip,port); //socketin=new DataInputStream(xport_socket.getInputStream()); socketout=new DataOutputStream(xport_socket.getOutputStream()); } catch(Exception e){} img1=getImage(getDocumentBase(),"base2.png"); img2=getImage(getDocumentBase(),"Red3.png"); img3=getImage(getDocumentBase(),"Red4.png"); add(new Button("LED-R1")); add(new Button("LED-R2")); repaint(); } public boolean action (Event e,Object obj){ if(obj.equals("LED-R1")){ sw1=!sw1; com='1'; repaint(); run=true; } else if(obj.equals("LED-R2")){ sw2=!sw2; com='2'; repaint(); run=true; } return true; } public void start(){ if(th==null){ th=new Thread(this); th.start(); } } public void run(){ Thread me=Thread.currentThread(); while(th==me){ if(run){ try{ socketout.writeByte(com); socketout.flush(); repaint(); th.sleep(1000); } catch(Exception e){} run=false; sw1=false; sw2=false; repaint(); } try{ buff=socketin.readLine(); repaint(); } catch(IOException e){} } } public void stop(){ if(th!=null){ try{ socketin.close(); socketout.close(); xport_socket.close(); } catch(Exception e){} th.stop(); th=null; } } public void paint(Graphics g){ g.drawImage(img1,100,50,this); if (sw1)g.drawImage(img2,100,50,this); if (sw2)g.drawImage(img3,150,50,this); String t1=buff+"℃"; g.setFont(new Font("MS明朝",Font.BOLD,36)); g.drawString(t1, 100, 200); } }

  • Paneに画像を二つ貼り付ける

    学校の課題でブロック崩しを作っているのですが、まずはバーとボールを画面に表示させようと思い以下の通りに作ったのですが、バーかボールどちらかしか画面に出てきません。 import java.awt.*; import javax.swing.*; class BlockBreak extends JFrame{ Bar br; Ball ba; public static void main(String[] args){ BlockBreak bb = new BlockBreak(); bb.setSize(300,500); bb.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); bb.setVisible(true); } BlockBreak(){ Container c = this.getContentPane(); ba = new Ball(); br = new Bar(); c.add(ba); c.add(br); } } class Ball extends JComponent{ int x,y; int xf,yf; ImageIcon baim; Image baimg; Ball(){ x = 150; y = 390; baim = new ImageIcon("ball.png"); baimg = baim.getImage(); } public void paint(Graphics g){ g.drawImage(baimg,x,y,this); } } class Bar extends JComponent{ int x,xl; final int y = 400; ImageIcon brim; Image brimg; Bar(){ x = 100; xl = 100; brim = new ImageIcon("bar.png"); brimg = brim.getImage(); } public void paint(Graphics g){ g.drawImage(brimg,x,y,this); } } BlockBreakクラスの c.add(ba); c.add(br); という個所の順番を入れ替えると、バーかボールどちらが画面に表示されるかが切り替わり、後に書いた方が表示されるみたいです。というか、前に書いた方のオブジェクトのpaintメソッド自体が実行されてない気がします(System.out.printlnを埋め込んで確かめてみました)。 Javaは本格的に始めてまだ浅いもので、単純ミスでしたら申し訳ありません。困っているのでご回答願います。

    • ベストアンサー
    • Java
  • 画像を表示させるプログラム

    こんばんわ。 現在、Javaで画像を表示させるアプレットを作っているのですが、画像が表示されません。 書いたソースは以下です。 import java.applet.Applet; import java.awt.*; /* <applet code="Panel.class" width="497" height="600"> </applet> */ public class Panel extends Applet { Image data; public void init() { data = getImage(getDocumentBase(),"2-1.gif"); } public void paint(Graphics g) { g.drawImage(data, 0, 0, data.getWidth(this), data.getHeight(this), this); } } 2-1.gifという画像ファイルを表示させたいと思っています。画像ファイルはソースファイルと同じディレクトリにあります。appletviewerで実行しているのですが画像がさっぱり表示されません。 SDKのバージョンは1.5を使っています。 お手数おかけしますが、ご教授の程よろしくおねがいします。

    • ベストアンサー
    • Java

専門家に質問してみよう