C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: 画像保存の方法


(過去ログ 28 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■12906 / inTopicNo.1)  画像保存の方法
  
□投稿者/ yu (2回)-(2008/01/20(Sun) 18:31:20)

分類:[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);
}
}
}

引用返信 編集キー/
■12938 / inTopicNo.2)  Re[1]: 画像保存の方法
□投稿者/ 凪瀬 (9回)-(2008/01/21(Mon) 16:31:58)
凪瀬 さんの Web サイト
No12906 (yu さん) に返信
> javaについての質問です。
> 動かした画像を保存したいのですが、私はjava初心者のためどうしたらいいかよくわかりません。ソースを貼り付けておきますので、解かる方はソースに保存方法を加えていただき表示していただけると非常に助かります。

「動かした画像」というのがよくわからないのですが、プログラム上で編集したImageオブジェクトを
ファイルに書き出したいのでしょうか?

画像の書き出しにはImageIOクラスを用います。
http://java.sun.com/javase/ja/6/docs/ja/api/javax/imageio/ImageIO.html

ただし、Appletの場合はサンドボックスの制約でファイルへの書き出しには
制限があるので注意が必要です。
引用返信 編集キー/
■12954 / inTopicNo.3)  Re[2]: 画像保存の方法
□投稿者/ yu (3回)-(2008/01/21(Mon) 21:13:49)
http://www.takana.info/java4/alphacompositetest.htm
を参照していただければわかると思いますが、スライダーがありスライダーを動かすことによって画像が変わります。スライダーを動かしたときに出来る画像をファイルとして書き出したいのです。
ImageIOクラスとはどこに書けばいいのでしょうか?

No12938 (凪瀬 さん) に返信
> ■No12906 (yu さん) に返信
>>javaについての質問です。
>>動かした画像を保存したいのですが、私はjava初心者のためどうしたらいいかよくわかりません。ソースを貼り付けておきますので、解かる方はソースに保存方法を加えていただき表示していただけると非常に助かります。
>
> 「動かした画像」というのがよくわからないのですが、プログラム上で編集したImageオブジェクトを
> ファイルに書き出したいのでしょうか?
>
> 画像の書き出しにはImageIOクラスを用います。
> http://java.sun.com/javase/ja/6/docs/ja/api/javax/imageio/ImageIO.html
>
> ただし、Appletの場合はサンドボックスの制約でファイルへの書き出しには
> 制限があるので注意が必要です。
引用返信 編集キー/
■12985 / inTopicNo.4)  Re[3]: 画像保存の方法
□投稿者/ (報告) (1回)-(2008/01/22(Tue) 17:09:46)
マルチポスト
http://www.javaroad.jp/bbs/answer.jsp?q_id=2008012215390658
引用返信 編集キー/
■13045 / inTopicNo.5)  Re[4]: 画像保存の方法
□投稿者/ yu (4回)-(2008/01/23(Wed) 20:45:25)
私はやり方を知りたかったので、他のサイトにも同様のことを書きましたがそれはいけないことなのでしょうか?
No12985 ((報告) さん) に返信
> マルチポスト
> http://www.javaroad.jp/bbs/answer.jsp?q_id=2008012215390658
引用返信 編集キー/
■13051 / inTopicNo.6)  Re[5]: 画像保存の方法
□投稿者/ どんだけ〜! (2回)-(2008/01/23(Wed) 21:23:57)
2008/01/23(Wed) 21:26:21 編集(投稿者)

No13045 (yu さん) に返信
> 私はやり方を知りたかったので、他のサイトにも同様のことを書きましたがそれはいけないことなのでしょうか?
> ■No12985 ((報告) さん) に返信
>>マルチポスト
>>http://www.javaroad.jp/bbs/answer.jsp?q_id=2008012215390658

これ見てみー
http://www.ippo.ne.jp/g/53.html
http://members.at.infoseek.co.jp/ms_mzn/#multi
引用返信 編集キー/
■13052 / inTopicNo.7)  Re[5]: 画像保存の方法
□投稿者/ tama (3回)-(2008/01/23(Wed) 21:34:08)
No13045 (yu さん) に返信
> 私はやり方を知りたかったので、他のサイトにも同様のことを書きましたがそれはいけないことなのでしょうか?

yuさんは純粋にこの疑問を解決したくて、複数の掲示板に同じ内容を書き込んだのかもしれません。

しかし、各掲示板で記事を見ている人々、特に複数の掲示板を行き来している人々にとっては、どこへ行っても
同じ記事を見せられることになります。
こちらから(意味的に)引用↓
http://e-words.jp/w/E3839EE383ABE38381E3839DE382B9E38388.html


また、どんだけ〜!さんのコメントにあるリンク先にも書かれていますが、
複数の掲示板に書き込むだけ書き込んでその後の報告も無しにほったらかし、というのがあまりに多く
それ故に「マルチポストはよくない」というのが常識となっています。

何より、質問する側も答える側も同じ「人」です。
もし、この疑問を掲示板を介してではなく、直に人に聞くとしたら、
聞いた相手が考えている間に何のことわりもなく他へ聞きに行ったりしますか?(ことわりがあってもあまり良い気分にはならないと思いますが)
また、自分がそうされたらどう感じるでしょうか?

掲示板が間に入ってるだけで、「相手の気持ちを考える」ことは実際に人に会うときと同じなのです。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -