当前位置: 技术问答>java相关
为什么:win98下不能显示,win2000下可以显示.
来源: 互联网 发布时间:2015-03-26
本文导语: 我想问的就是: 如何在内存中把一副图片画到另一副图片上。 一个是背景图A, 一个是前图:B A + B = ???如何着。 http://java.sun.com/docs/books/tutorial/2d/display/compositing.html 有很多java2d的资料,但都是画...
我想问的就是: 如何在内存中把一副图片画到另一副图片上。
一个是背景图A,
一个是前图:B
A + B = ???如何着。
http://java.sun.com/docs/books/tutorial/2d/display/compositing.html
有很多java2d的资料,但都是画图形,不是图片。
也不是真真的在内存中和并的。而是覆盖的画上去的。不知道有没有人改结。
先感谢:masterz()实现了但有点问题代码如下
------------------------------
public void paint(Graphics g)
{
BufferedImage bimg=new BufferedImage(this.getWidth(),this.getHeight(),BufferedImage.TYPE_INT_RGB);
Graphics gimg=bimg.getGraphics();
Image foreimg;//initialize your foreimage
Image backimg;//initialize your back image
gimg.drawImage(foreimg,...);
gimg.drawImage(backimg,...);//now bimg=A+B
g.drawImage(bimg,0,0,bimg.getWidth(null),bimg.getHeight(null),null);
gimg.dispose();
}
----------------------------------------------------
环境 j2dk1.3 IE6.0
如果用appletviewer win98 和win2000 都可以.
但在网页中win98 就不显示啦,win2000没问题.
请问有什么改解方法没有?如果不行,还有什么方法能实现?????
一个是背景图A,
一个是前图:B
A + B = ???如何着。
http://java.sun.com/docs/books/tutorial/2d/display/compositing.html
有很多java2d的资料,但都是画图形,不是图片。
也不是真真的在内存中和并的。而是覆盖的画上去的。不知道有没有人改结。
先感谢:masterz()实现了但有点问题代码如下
------------------------------
public void paint(Graphics g)
{
BufferedImage bimg=new BufferedImage(this.getWidth(),this.getHeight(),BufferedImage.TYPE_INT_RGB);
Graphics gimg=bimg.getGraphics();
Image foreimg;//initialize your foreimage
Image backimg;//initialize your back image
gimg.drawImage(foreimg,...);
gimg.drawImage(backimg,...);//now bimg=A+B
g.drawImage(bimg,0,0,bimg.getWidth(null),bimg.getHeight(null),null);
gimg.dispose();
}
----------------------------------------------------
环境 j2dk1.3 IE6.0
如果用appletviewer win98 和win2000 都可以.
但在网页中win98 就不显示啦,win2000没问题.
请问有什么改解方法没有?如果不行,还有什么方法能实现?????
|
import java.awt.*;
import java.awt.image.*;
import java.applet.*;
public class Show2Image extends Applet
{
Image foreimg;//initialize your foreimage
Image backimg;//initialize your back image
public void init()
{
MediaTracker tracker = new MediaTracker(this);
foreimg = this.getImage(this.getCodeBase(),"fore.gif");
backimg = this.getImage(this.getCodeBase(),"back.gif");
tracker.addImage(foreimg, 0);
tracker.addImage(backimg, 1);
try
{
tracker.waitForAll(0);
}
catch(Exception e)
{
e.printStackTrace();
}
}
public void paint(Graphics g)
{
BufferedImage bimg=new BufferedImage(this.getWidth(),this.getHeight(),BufferedImage.TYPE_INT_RGB);
Graphics gimg=bimg.getGraphics();
if(foreimg!=null)
gimg.drawImage(foreimg,0,0,null);
if(backimg!=null)
gimg.drawImage(backimg,0,0,null);//now bimg=A+B
g.drawImage(bimg,0,0,bimg.getWidth(null),bimg.getHeight(null),null);
gimg.dispose();
}
}
import java.awt.image.*;
import java.applet.*;
public class Show2Image extends Applet
{
Image foreimg;//initialize your foreimage
Image backimg;//initialize your back image
public void init()
{
MediaTracker tracker = new MediaTracker(this);
foreimg = this.getImage(this.getCodeBase(),"fore.gif");
backimg = this.getImage(this.getCodeBase(),"back.gif");
tracker.addImage(foreimg, 0);
tracker.addImage(backimg, 1);
try
{
tracker.waitForAll(0);
}
catch(Exception e)
{
e.printStackTrace();
}
}
public void paint(Graphics g)
{
BufferedImage bimg=new BufferedImage(this.getWidth(),this.getHeight(),BufferedImage.TYPE_INT_RGB);
Graphics gimg=bimg.getGraphics();
if(foreimg!=null)
gimg.drawImage(foreimg,0,0,null);
if(backimg!=null)
gimg.drawImage(backimg,0,0,null);//now bimg=A+B
g.drawImage(bimg,0,0,bimg.getWidth(null),bimg.getHeight(null),null);
gimg.dispose();
}
}
|
IE6的问题。安装JDK1.4的plus-in.
|
你的Win98 的jre是1.3版本?!
|
是IE的问题。IE6没有嵌入最新的jvm。你可以安装一套新版本的jre。