|
分類:[Java]
javaについての質問です。 動かした画像を保存したいのですが、私はjava初心者のためどうしたらいいかよくわかりません。ソースを貼り付けておきますので、解かる方はソースに保存方法を加えていただき表示していただけると非常に助かります。 勝手なお願いではありますが、よろしくお願いします。 //AlphaCompositeTest
import java.awt.*; import javax.swing.*; import javax.swing.event.*; /* <applet code="AlphaCompositeTest" width=600 height=500> <param name="file" value="pict0.jpg"> </applet> */ public class AlphaCompositeTest extends JApplet implements ChangeListener {
//Eclipseの場合、シリアライズ可能クラスでこれがないと警告が出る private static final long serialVersionUID=0; //画像の枚数 static final int NUMBER=3; // AlphaCompositeTestPanel panel; // JSlider slider02,slider01,slider00; // public void init(){ //初期化の後、画像とその透明度をセット panel=new AlphaCompositeTestPanel(); for(int n=0;n<NUMBER;n++){ panel.setImage(n,getImage(getDocumentBase(),"a"+n+".jpg")); panel.setAlpha(n,0.5F); } // JPanel panel2=new JPanel(); panel2.setLayout(new GridLayout(3,2)); panel2.add(new JLabel("1枚目")); panel2.add(slider02=new JSlider(0,255,255)); panel2.add(new JLabel("2枚目")); panel2.add(slider01=new JSlider(0,255,255)); panel2.add(new JLabel("3枚目")); panel2.add(slider00=new JSlider(0,255,255)); //コンテナ枠 Container cp=getContentPane(); cp.add(panel,BorderLayout.CENTER); cp.add(panel2,BorderLayout.SOUTH); // slider02.addChangeListener(this); slider01.addChangeListener(this); slider00.addChangeListener(this); } //それぞれの画像の透明度をセット
public void stateChanged(ChangeEvent e) { if(e.getSource()==slider02){ float f=(float)(slider02.getValue())/255; panel.setAlpha(2,f); // repaint(); }else if(e.getSource()==slider01){ float f=(float)(slider01.getValue())/255; panel.setAlpha(1,f); // repaint(); }else if(e.getSource()==slider00){ float f=(float)(slider00.getValue())/255; panel.setAlpha(0,f); // repaint(); } } }
//AlphaCompositeTestPanel
import java.awt.*; import javax.swing.JPanel;
public class AlphaCompositeTestPanel extends JPanel { //Eclipseの場合、シリアライズ可能クラスでこれがないと警告が出る private static final long serialVersionUID=0; // Image[] images; float[] alphas; // public AlphaCompositeTestPanel(){ images=new Image[AlphaCompositeTest.NUMBER]; alphas=new float[AlphaCompositeTest.NUMBER];
} //画像を受け取って保持 public void setImage(int n,Image img){ images[n]=img; } //透明度を受け取って保持 public void setAlpha(int n,float f){ alphas[n]=f; } // public void paintComponent(Graphics g){ super.paintComponent(g); // Graphics2D g2=(Graphics2D)g; // for(int n=0;n<AlphaCompositeTest.NUMBER;n++){ //透明度をセットして、画像を描画 AlphaComposite comp=AlphaComposite.getInstance(AlphaComposite.SRC_OVER,alphas[n]); g2.setComposite(comp); // g2.drawImage(images[n],0,0,this); } } }
|