啊!!!!受不了了,怎么把image類型的對象轉化成bufferedimage的對象呀?急用!!!快瘋了


我折騰了一下午了,先是用強制類型轉換,結果總出java.lang.ClassCastException: sun.awt.windows.WImage錯誤,好像是cast不對。然后我就試用 
BufferedImage bi = new BufferedImage (600,600,BufferedImage.TYPE_INT_RGB );
Graphics2D biContext =bi.createGraphics( );
biContext.drawImage(image, 0, 0, null );
這種辦法,結果沒有錯誤了,但是顯示出來的圖片卻是全黑的。
到底怎么才能正確的把image轉化成bufferedimage呢???或者能把image轉化成png圖片格式也可以(中間轉不轉bufferedimage都可以)。
對了,是要在servlet中實現的
謝謝啦!傾家盪產給分都可以!!!-_-:

6 个解决方案

#1


ding!!!

#2


你的思路基本正確了,
首先在內存中創建一個圖象。
然后在這個圖象上畫東西。
最后編碼輸出就可以了。
我有一個簡單的例子你看看。
//**DrawImage.java**//

import java.io.*; 
import java.util.*; 
import com.sun.image.codec.jpeg.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 
import java.awt.*; 
import java.awt.geom.*; 
import java.awt.image.*; 
import java.lang.*;
public class DrawImage extends HttpServlet {
  public void init() throws ServletException {
  }
  public void doGet(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException {
    response.setContentType("image/jpeg");
BufferedImage image = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);  //創建內存圖片
Graphics g = image.getGraphics();
g.setColor( Color.red ); //設置顏色
g.fillRect( 0,0,100,100 );//畫巨型
g.drawImage(image,20,20,null);
g.setColor( Color.white ); 
g.drawString("我的故事",10,20);
ServletOutputStream out = response.getOutputStream(); 
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); 
encoder.encode(image); 
out.close();
    }

 public void destroy()
 {

     }
}

#3


還是不行呀,我這樣做之后總是只能顯示底色,如紅色或黑色,可是image中的確有圖呀,因為我在applet中測試中看到的

#4


幫幫忙呀,還有三天就要交了,要不然過不了了!
我現在的問題是只能用outputstream外加設置response輸出格式才能輸出png格式圖片並正常顯示,但是這樣產生的圖片卻不能在j2me模擬器中顯示(說是格式錯誤),不知道是不是編碼器版本問題。可是如果我換用另外一種pngencoder(com.keypoint.pngencoder),在瀏覽器(ie)中根本就顯示不了(懷疑有可能和原圖片源的格式有關,因為我看這個pngencoder的api說明好像對於圖像源有一定限制),總像鏈接失效的樣子似的。
怎么辦呢?我現在手里的圖片源可以是byte[],也可以是image,有什么辦法能轉成bufferedimage,renderedimage或者直接png格式呢?另外,因為最終是要在手機中顯示,怎么能改變圖片大小呢,我試着用image的getscaleinstance去縮小圖片,但好像沒什么反應。
請幫幫忙吧,多少分都可以呀(不過我現在只有500多分了)
頂!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!11

#5


頂!!!!!!!!!!!!!!!!!!

#6


ding!

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com