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 ,