请问知道一个图片的URL后,如何将写个applet,让它在applet中显示出来,速度要快。我以前用的是:applet访问servlet,由servlet根据url取得图片的ImageIcon对象后,返回给applet,在applet中再得到Image对象,
并再paint方法中利用drawImage方法画出。
servlet中的主要代码如下:
//根据URL取图片
public ImageIcon getImageIcon2(String urlStr)
{
try
{
System.out.println("getIcon Begin");
ImageIcon toII=new ImageIcon(new URL(urlStr));
System.out.println("getIcon End");
return toII;
}
catch(Exception e)
{
System.out.println("getIcon error");
return null;
}
}
|
//在servlet中发送ImageIcon对象的方法
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{
ObjectInputStream in=null;
ObjectOutputStream out=null;
ImageIcon ii=null;
try
{
in=new ObjectInputStream(request.getInputStream());
out=new ObjectOutputStream(response.getOutputStream());
ii=getImageIcon2("http://xxxx/1.jpg"); //参数是一个图片的url,位于其它机器上
//发送图像
out.writeObject(ii);
}
catch(Exception e)
. . .. .
|
Applet中访问servlet的主要代码如下:
try {
URL url1 = new URL(IMGSERVERADDR); //参数是被访问的servlet的url
conn = url1.openConnection();
//使浏览器不缓存这个URL
conn.setUseCaches(false);
//允许接收服务器发来的数据
conn.setDoInput(true);
//允许发送数据到服务器
conn.setDoOutput(true);
//发送请求地图的字符串
objOutputS = new ObjectOutputStream(conn.getOutputStream());
objOutputS.writeObject(str);
//启动ExecuteRequest线程以执行接收并画出图像的任务
ExecuteRequest0809 exeR = new ExecuteRequest0809();
Thread exec = new Thread(exeR);
exec.start();
.. .. ..
<p>
|
我在windows的IE中输入图片的url后,很快就可以得到图片,而我的程序得到图片的时间很长,
是前者的8~10倍。请问,有什么方法,可以让取图的速度快些呢?如果能够边取边显示就好了,
及先显示到来的数据,刷新显示,这样就感觉上快些,请大家多多帮忙!!!不胜感激!!