java获取资源文件
发布时间:2020-12-14 23:19:10 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import java.awt.BasicStroke;import java.awt.Color;import java.awt.Graphics2D;import java.awt.Image;import java.awt.Transparency;import java.
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 import java.awt.BasicStroke; import java.awt.Color; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Transparency; import java.awt.geom.GeneralPath; import java.awt.geom.RoundRectangle2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.MalformedURLException; import java.net.URL; import java.net.URLDecoder; import java.util.jar.JarEntry; import java.util.jar.JarFile; import javax.swing.ImageIcon; /** * * 功能:读取资源文件类 <br> * 时间:2010-11-24 <br> * 备注: <br> * * @author Lin.~ * */ public abstract class ResourceUtil { /** * 得到资源文件 * * @param path * 资源文件的路径 * @return */ protected final URL getURL(String path) { // 先从当前目录取(打成jar包的情况下) URL url = getClass().getResource(path); // 如果没取到,则从根目录取(打成jar包的情况下) if (url == null) url = getClass().getResource("/" + path); // 从当前线程的地址取 if (null == url) url = Thread.currentThread().getContextClassLoader() .getResource(path); // 以上代码都是针对swing的。下面代码针对eclipse中情况 if (url == null) { try { String rootPath = System.getProperty("user.dir"); // 针对在eclipse中,用Java Application运行的。 File webFile = new File(rootPath + "/" + path); if (webFile.exists()) { url = webFile.toURI().toURL(); } else { // 针对eclipse中用web运行的。 webFile = new File(Thread.currentThread().getContextClassLoader() .getResource("/")+"/"+path); url = webFile.toURI().toURL(); } // 实在不行了,死马当活马医吧 if(null ==url) url = new File(new File("").getAbsoluteFile()+"/"+path).toURI().toURL(); } catch (MalformedURLException e) { e.printStackTrace(); } } if(null == url) throw new NullPointerException("对不起,始终没有找到【"+path+"】资源"); return url; } /** * 得到资源文件读取流 * * @param filePath * 资源文件路径 * @return 资源文件流 * @throws IOException */ private InputStream getJarIO(String filePath) throws IOException { String JarPath = URLDecoder.decode(getClass().getProtectionDomain() .getCodeSource().getLocation().getFile(),"UTF-8"); if (JarPath.startsWith("/")) JarPath = JarPath.substring(1); JarFile cJar = new JarFile(JarPath); JarEntry util = cJar.getJarEntry(filePath); return cJar.getInputStream(util); } /** * 修改资源文件 * * @param filePath * 资源文件路径 * @return 资源文件写入流 * @throws Exception */ protected final OutputStream getJarOut(String filePath) throws IOException { throw new IOException("没有实现修改Jar包内部的文件的方法"); } /** * 读取资源文件流 * * @param resourceName * @return */ protected final InputStream getIO(String filePath) { URL url = getURL(filePath); try { return url != null ? url.openStream() : getJarIO(filePath); } catch (IOException e) { e.printStackTrace(); } return null; } /** * 得到图片 * * @param path * 图片路江 * @return */ public ImageIcon getImageIcon(String path) { return new ImageIcon(getURL(path)); } /** * 缩放图片 * * @param icon * 要缩放的图片 * @param width * 缩放宽度 * @param height * 缩放高度 * @return 缩放后的图片 */ public static ImageIcon zoomImg(ImageIcon icon,int width,int height) { Image img = icon.getImage(); Image newImg = img.getScaledInstance(width,height,1); return new ImageIcon(newImg); } /** * 绘制圆角图片 * * @param icon * 要绘制的原图 * @param width * 绘制圆角宽 * @param height * 绘制圆角高 * @return 绘制完成的图片 */ public static BufferedImage getCircularImage(ImageIcon icon,int height) { BufferedImage buff = new BufferedImage(icon.getIconWidth(),icon.getIconHeight(),Image.SCALE_DEFAULT); Image i = icon.getImage(); Graphics2D g = (Graphics2D) buff.getGraphics(); buff = g.getDeviceConfiguration().createCompatibleImage( icon.getIconWidth(),Transparency.TRANSLUCENT); g.dispose(); g = buff.createGraphics(); System.out.println(g.getColor()); g.setColor(Color.RED); g.setStroke(new BasicStroke(1)); RoundRectangle2D rect = new RoundRectangle2D.Double(0,icon.getIconWidth(),width,height); GeneralPath p = new GeneralPath(); p.append(rect,false); g.setClip(p); g.drawImage(i,null); return buff; } } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |