sunfruit[請訪問http://www.fruitres.cn]

          --我相信JAVA能走得更遠 QQ:316228067

          JAVA在已有圖片上面畫圖報錯UnsupportedOperationException的解決辦法

          --sunfruit

            前一段時間寫了一個[原創]JAVA中圖片上疊加文字的方法,本來這方面的例子在網絡上面很多,而且當時寫的時候也沒有遇到什么問題,所以也沒有什么感覺要注意的地方
            昨天由于一些原因需要在一個已有的圖片上面畫點,然后再顯示出來,感覺上和[原創]JAVA中圖片上疊加文字的方法很類似,也就沒當回事按照自己的思路就寫了,很容易想到讀取已存在的圖片內容然后生成
            ImageIcon imageIcon=new ImageIcon(bytes);    對象然后生成
            Image image=imageIcon.getImage();    對象,這個時候只要是從image實例里面獲得Graphics對象就可以對圖片進行編輯了但是下面這步卻報錯了
            Graphics g =image.getGraphics(); //這步抱錯:UnsupportedOperationException: getGraphics() not valid for images created with createImage(producer)
            怎么調試都不行,于是google一把,發現遇到這個問題的人不少,解決辦法是不能從Image對象獲得Graphics,而是要從BufferedImage對象獲得Graphics,于是調整思路將代碼修改為
            BufferedImage bufferedImage=new BufferedImage(imageIcon.getIconHeight(),imageIcon.getIconWidth(),BufferedImage.TYPE_INT_RGB);
            Graphics2D g=(Graphics2D)bufferedImage.getGraphics();這次測試通過可以獲得Graphics對象了

            這里說明一點:Graphics g =image.getGraphics(); 這一步如果是從Java的圖形組件里面獲得的Image對象,然后獲得Graphics對象就不會有問題
            在已有的圖片上面畫圖的完整例子見:[原創]JAVA在已有圖片上面畫圖的實例

          posted on 2006-03-11 13:56 sunfruit 閱讀(2144) 評論(0)  編輯  收藏 所屬分類: JAVA SE & EE

          主站蜘蛛池模板: 沁水县| 抚宁县| 开阳县| 武宣县| 柯坪县| 北碚区| 通山县| 深泽县| 太原市| 宜城市| 武义县| 蓬溪县| 新兴县| 鄂州市| 临清市| 江津市| 平乐县| 永泰县| 高雄县| 巫山县| 日照市| 巴林左旗| 佛教| 通城县| 黔东| 焦作市| 外汇| 蒙阴县| 临洮县| 朝阳县| 北流市| 定结县| 阿拉善右旗| 乐山市| 福贡县| 留坝县| 绥江县| 康乐县| 海淀区| 收藏| 礼泉县|