日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

根据文件扩展名得到文件对应该类型Icon方法

發(fā)布時間:2023/12/9 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 根据文件扩展名得到文件对应该类型Icon方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標準>>>

根據(jù)文件擴展名得到文件對應該類型Icon方法

package?com.fleety.util; import?java.awt.Graphics; import?java.awt.Graphics2D; import?java.awt.GraphicsConfiguration; import?java.awt.GraphicsDevice; import?java.awt.GraphicsEnvironment; import?java.awt.HeadlessException; import?java.awt.Image; import?java.awt.Transparency; import?java.awt.image.BufferedImage; import?java.awt.image.ColorModel; import?java.awt.image.PixelGrabber; import?java.io.File; import?java.io.FileNotFoundException; import?java.io.IOException; import?javax.swing.Icon; import?javax.swing.ImageIcon; import?sun.awt.shell.ShellFolder; public?class?CommonTool?{public?static?BufferedImage?getImageByFileTyle(String?filename)throws?FileNotFoundException?{File?file?=?null;String?extension?=?filename.substring(filename.lastIndexOf(".")).toLowerCase();try?{file?=?File.createTempFile("icon",?extension);}?catch?(IOException?e)?{//?TODO?Auto-generated?catch?blocke.printStackTrace();}return?toBufferedImage(toImage(toIcon(file)));}public?static?Icon?toIcon(File?file)?throws?FileNotFoundException?{ShellFolder?shellFolder?=?ShellFolder.getShellFolder(file);Icon?icon?=?new?ImageIcon(shellFolder.getIcon(true));return?icon;}public?static?Image?toImage(Icon?icon)?{if?(icon?instanceof?ImageIcon)?{return?((ImageIcon)?icon).getImage();}?else?{int?w?=?icon.getIconWidth();int?h?=?icon.getIconHeight();GraphicsEnvironment?ge?=?GraphicsEnvironment.getLocalGraphicsEnvironment();GraphicsDevice?gd?=?ge.getDefaultScreenDevice();GraphicsConfiguration?gc?=?gd.getDefaultConfiguration();BufferedImage?image?=?gc.createCompatibleImage(w,?h);Graphics2D?g?=?image.createGraphics();icon.paintIcon(null,?g,?0,?0);g.dispose();return?image;}}private?static?boolean?hasAlpha(Image?image)?{//?If?buffered?image,?the?color?model?is?readily?availableif?(image?instanceof?BufferedImage)?{BufferedImage?bimage?=?(BufferedImage)?image;return?bimage.getColorModel().hasAlpha();}//?Use?a?pixel?grabber?to?retrieve?the?image's?color?model;//?grabbing?a?single?pixel?is?usually?sufficientPixelGrabber?pg?=?new?PixelGrabber(image,?0,?0,?1,?1,?false);try?{pg.grabPixels();}?catch?(InterruptedException?e)?{}//?Get?the?image's?color?modelColorModel?cm?=?pg.getColorModel();return?cm.hasAlpha();}//?This?method?returns?a?buffered?image?with?the?contents?of?an?imagepublic?static?BufferedImage?toBufferedImage(Image?image)?{if?(image?instanceof?BufferedImage)?{return?(BufferedImage)?image;}//?This?code?ensures?that?all?the?pixels?in?the?image?are?loadedimage?=?new?ImageIcon(image).getImage();//?Determine?if?the?image?has?transparent?pixels;?for?this?method's//?implementation,?see?Determining?If?an?Image?Has?Transparent?Pixelsboolean?hasAlpha?=?hasAlpha(image);//?Create?a?buffered?image?with?a?format?that's?compatible?with?the//?screenBufferedImage?bimage?=?null;GraphicsEnvironment?ge?=?GraphicsEnvironment.getLocalGraphicsEnvironment();try?{//?Determine?the?type?of?transparency?of?the?new?buffered?imageint?transparency?=?Transparency.OPAQUE;if?(hasAlpha)?{transparency?=?Transparency.BITMASK;}//?Create?the?buffered?imageGraphicsDevice?gs?=?ge.getDefaultScreenDevice();GraphicsConfiguration?gc?=?gs.getDefaultConfiguration();bimage?=?gc.createCompatibleImage(image.getWidth(null),?image.getHeight(null),?transparency);}?catch?(HeadlessException?e)?{//?The?system?does?not?have?a?screen}if?(bimage?==?null)?{//?Create?a?buffered?image?using?the?default?color?modelint?type?=?BufferedImage.TYPE_INT_RGB;if?(hasAlpha)?{type?=?BufferedImage.TYPE_INT_ARGB;}bimage?=?new?BufferedImage(image.getWidth(null),?image.getHeight(null),?type);}//?Copy?image?to?buffered?imageGraphics?g?=?bimage.createGraphics();//?Paint?the?image?onto?the?buffered?imageg.drawImage(image,?0,?0,?null);g.dispose();return?bimage;} }

?

轉載于:https://my.oschina.net/u/1458864/blog/268446

總結

以上是生活随笔為你收集整理的根据文件扩展名得到文件对应该类型Icon方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。