有一个问题:在作一个项目,flash中要显示一张图片,图片是由java通过stream传送的。
因为flash图片的舞台固定700*400,所以java要把拿到的图片都等比地处理成700*400。
例如:
1400*500->700*250,而且图片的信息不能少(就是说不能截一部分)
500*400, 不用处理,flash自适应。我用BufferedImage类指定大小的话,图片大的只会截取,图片小的会以黑色填充。忘大家不吝赐教!
因为flash图片的舞台固定700*400,所以java要把拿到的图片都等比地处理成700*400。
例如:
1400*500->700*250,而且图片的信息不能少(就是说不能截一部分)
500*400, 不用处理,flash自适应。我用BufferedImage类指定大小的话,图片大的只会截取,图片小的会以黑色填充。忘大家不吝赐教!
解决方案 »
- ==java swing开发中国象棋人机对战程序=
- 请教各位前辈用用权限设计
- ClassLoader.getSystemClassLoader().findLoadedClass("A")这一句错哪儿了
- 自己写了一个正则表达式工具(2)
- 简单的字符数组问题,请大虾指教~~在线急等
- 关于GUI的Thread问题
- JAVA的基础问题 和C++的多态比下 有 点不懂了`
- 请问有懂JXTA的不??我有一个问题想请教一下~
- 请问多重try catch块和嵌套try catch块的区别是什么?
- 百思不得其解!!!!
- IO问题,请高手帮忙!!!
- 一个关于浮点数小数点保留位数的函数问题~~~~~~~~~~~~~·
{
public void jpgTset() throws Exception
{
File _file = new File("d:\\2.GIF"); //读入文件
System.out.println("1111111"+_file);
//FileImageInputStream fiis = new FileImageInputStream(_file);
Image src = javax.imageio.ImageIO.read(_file); //构造Image对象
//Image src = javax.imageio.ImageIO.read(fiis); //构造Image对象
int wideth=src.getWidth(null); //得到源图宽
int height=src.getHeight(null); //得到源图长
System.out.println("the wideth:"+wideth);
System.out.println("the height:"+height);
BufferedImage tag = new BufferedImage(wideth/2,height/2,BufferedImage.TYPE_INT_RGB);
tag.getGraphics().drawImage(src,0,0,wideth/2,height/2,null); //绘制缩小后的图
FileOutputStream out=new FileOutputStream("D:/ewfile.gif"); //输出到文件流
//*********
AnimatedGifEncoder gifEncoder = new AnimatedGifEncoder();
gifEncoder.start(out);
gifEncoder.addFrame(tag);
gifEncoder.finish();
//JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
//encoder.encode(tag); //近JPEG编码
out.close();
}
public static void main(String[] args)
{
try
{
new JpgTest().jpgTset();
}catch(Exception e)
{
e.printStackTrace();
}
} }
AnimatedGifEncoder gifEncoder = new AnimatedGifEncoder();
gifEncoder.start(out);
gifEncoder.addFrame(tag);
gifEncoder.finish();
这里不要了。这个是gif格式的,
//JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
//encoder.encode(tag); //近JPEG编码
把这个用上这个是JPG格式的
BufferedImage bi;
... AffineTransform at = new AffineTransform();
at.scale(( newWidth / bi.getWidth(), newHeight / bi.getHeight()); AffineTransformOp biop =
new AffineTransformOp(at, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
BufferedImage newbi = biop.filter(bi, null);
Image image=new ImageIcon("game/img/kuai.gif").getImage();
int width=image.getWidth();
int height=image.getHeight();
.........
.........处理width height
..........
Image im=jp.createImage(width,height);Graphics g=im.getGraphics();
g.drawImage(image,x,y,w,h,null);然后你把图片im输出就可以了