当前位置:操作系统 > 安卓/Android >>

Android之小小图片加工厂

        有时候我们在项目中,需要把图片加工一下,比如说加个圆角,或者打上马赛克或者水印,虽然不是很难的东西,但是没弄过,还是很纠结的,比如像我这样的小白,现在根据网上一些大牛的一些方法,总结了下面这个图片加工厂工具类,可能还有更多的需求,有需要的时候,再去网上找,继续完善中,,直接上跟大家分享代码,注释比较多,而且简单,我就不多说了,直接上跟大家分享代码:
[java]
/**
 * 图片加工厂
 * 
 * @author way
 * 
 */ 
public class ImageUtil { 
    /**
     * 通过路径获取输入流
     * 
     * @param path
     *            路径
     * @return 输入流
     * @throws Exception
     *             异常
     */ 
    public static InputStream getRequest(String path) throws Exception { 
        URL url = new URL(path); 
        HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
        conn.setRequestMethod("GET"); 
        conn.setConnectTimeout(5000); 
        if (conn.getResponseCode() == 200) { 
            return conn.getInputStream(); 
        } 
        return null; 
    } 
 
    /**
     * 从流中读取二进制数据
     * 
     * @param inStream
     *            输入流
     * @return 二进制数据
     * @throws Exception
     *             异常
     */ 
    public static byte[] readInputStream(InputStream inStream) throws Exception { 
        ByteArrayOutputStream outSteam = new ByteArrayOutputStream(); 
        byte[] buffer = new byte[4096]; 
        int len = 0; 
        while ((len = inStream.read(buffer)) != -1) { 
            outSteam.write(buffer, 0, len); 
        } 
        outSteam.close(); 
        inStream.close(); 
        return outSteam.toByteArray(); 
    } 
 
    /**
     * 把一个路径转换成Drawable对象
     * 
     * @param url
     *            路径
     * @return Drawable对象
     */ 
    public static Drawable loadImageFromUrl(String url) { 
        URL m; 
        InputStream i = null; 
        try { 
            m = new URL(url); 
            i = (InputStream) m.getContent(); 
        } catch (MalformedURLException e1) { 
            e1.printStackTrace(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
        Drawable d = Drawable.createFromStream(i, "src"); 
        return d; 
    } 
 
    /**
     * 把一个路径转换成Drawable对象
     * 
     * @param url
     *            字符串路径
     * @return Drawable对象
     * @throws Exception
     *             异常
     */ 
    public static Drawable getDrawableFromUrl(String url) throws Exception { 
        return Drawable.createFromStream(getRequest(url), null); 
    } 
 
    /**
     * 从路径中得到位图
     * 
     * @param url
     *            字符串路径
     * @return 位图
     * @throws Exception
     *             异常
     */ 
    public static Bitmap getBitmapFromUrl(String url) throws Exception { 
        byte[] bytes = getBytesFromUrl(url); 
        return byteToBitmap(bytes); 
    } 
 
    /**
     * 从路径中得到圆角位图
     * 
     * @param url
     *            字符串路径
     * @param pixels
     *            圆角弧度
     * @return 圆角位图
     * @throws Exception
     *             异常
     */ 
    public static Bitmap getRoundBitmapFromUrl(String url, int pixels) 
            throws Exception { 
        byte[] bytes = getBytesFromUrl(url); 
        Bitmap bitmap = byteToBitmap(bytes); 
        return toRoundCorner(bitmap, pixels); 
    } 
 
    /**
     * 从路径中得到圆角Drawable对象
     * 
     * @param url
     *     
补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,