android Bitmap图片的相关处理操作
2015-03-18 15:21
465 查看
androidBitmap图片的相关处理操作
/** *从网络获取图片并返回Bitmap对象 *@paramurlpath网络URL *@return */ publicstaticBitmapgetImageFromUrl(Stringurlpath){ InputStreaminputStream=null; Bitmapbitmap=null; try{ URLurl=newURL(urlpath); HttpURLConnectionconn=(HttpURLConnection)url.openConnection(); conn.setRequestMethod("GET");//设置请求方法为GET conn.setReadTimeout(5*1000);//设置请求过时时间为5秒 inputStream=conn.getInputStream();//通过输入流获得图片数据 byte[]buffer=newbyte[1024]; intlen=0; ByteArrayOutputStreambos=newByteArrayOutputStream(); while((len=inputStream.read(buffer))!=-1){ bos.write(buffer,0,len); } bos.close(); byte[]data=bos.toByteArray();//获得图片的二进制数据 bitmap=BitmapFactory.decodeByteArray(data,0,data.length);//生成位图 }catch(IOExceptione){ e.printStackTrace(); }finally{ if(inputStream!=null){ try{ inputStream.close(); }catch(IOExceptione){ e.printStackTrace(); } } } returnbitmap; } /** *按正方形裁切图片 */ publicstaticBitmapImageCrop(Bitmapbitmap){ intw=bitmap.getWidth();//得到图片的宽,高 inth=bitmap.getHeight(); intwh=w>h?h:w;//裁切后所取的正方形区域边长 intretX=w>h?(w-h)/2:0;//基于原图,取正方形左上角x坐标 intretY=w>h?0:(h-w)/2; //下面这句是关键 returnBitmap.createBitmap(bitmap,retX,retY,wh,wh,null,false); } //使用Bitmap加Matrix来缩放 publicstaticBitmapresizeImage(Bitmapbitmap,intw,inth) { intwidth=bitmap.getWidth(); intheight=bitmap.getHeight(); intnewWidth=w; intnewHeight=h; floatscaleWidth=((float)newWidth)/width; floatscaleHeight=((float)newHeight)/height; Matrixmatrix=newMatrix(); matrix.postScale(scaleWidth,scaleHeight); BitmapresizedBitmap=Bitmap.createBitmap(bitmap,0,0,width, height,matrix,true); if(!bitmap.isRecycled()){ bitmap.recycle(); bitmap=null; } returnresizedBitmap; } //使用Bitmap加Matrix来缩放[path图片路径] publicstaticBitmapresizeImage(Stringpath,intw,inth) { //Bitmapbitmap=resizeImage(path); //Bitmapbitmap=BitmapFactory.decodeFile(path); Bitmapbitmap=decodeFile(path,w,h); intwidth=bitmap.getWidth(); intheight=bitmap.getHeight(); intnewWidth=w; intnewHeight=h; floatinitScale=(float)0.99; floatscaleWidth=((float)newWidth)/width; floatscaleHeight=((float)newHeight)/height; if(scaleWidth<1.0||scaleHeight<1.0){ initScale=scaleHeight>scaleWidth?scaleWidth:scaleHeight; } else{ returnbitmap; } Matrixmatrix=newMatrix(); matrix.postScale(initScale,initScale); BitmapresizedBitmap=Bitmap.createBitmap(bitmap,0,0,width,height,matrix,true); if(!bitmap.isRecycled()){ bitmap.recycle(); bitmap=null; } returnresizedBitmap; }
/* *图片圆角的设置 *bitmap传入的bitmap对象 *pixels自定义圆角角度 */ publicstaticBitmaptoRoundCorner(Bitmapbitmap,intpixels){ BitmapoutputBitmap=Bitmap.createBitmap(bitmap.getWidth(),bitmap.getHeight(),Config.ARGB_8888); Canvascanvas=newCanvas(outputBitmap); finalintcolor=0xff424242; finalPaintpaint=newPaint(); finalRectrect=newRect(0,0,bitmap.getWidth(),bitmap.getHeight()); finalRectFrectF=newRectF(rect); finalfloatroundPx=pixels; paint.setAntiAlias(true); canvas.drawARGB(0,0,0,0); paint.setColor(color); canvas.drawRoundRect(rectF,roundPx,roundPx,paint); paint.setXfermode(newPorterDuffXfermode(PorterDuff.Mode.SRC_IN)); canvas.drawBitmap(bitmap,rect,rect,paint); returnoutputBitmap; }
相关文章推荐
- 【Android代码片段之一】图片处理Bitmap相关类型转换
- Android Bitmap操作内存问题总结(图片处理、截屏等)
- jsp中图片处理相关操作
- android 图片倒影 bitmap与drawable的转换 把图片处理成指定大小 图片圆角处理 dip转换成px
- Bitmap位图渲染与操作(图片移动,放大,缩小,旋转,镜像发转)--android游戏开发
- Android图片操作(Bitmap)
- jsp中图片处理相关操作
- Android 图片操作(Bitmap)
- Android 图片处理之图片叠加--Bitmap
- Android中图片处理(压缩 保存 显示 截屏 视图View转为图片Bitmap)函数工具类
- 总结一下Android中Bitmap图片操作中要注意的地方
- Android中几种图像特效处理的小技巧,比如圆角,倒影,还有就是图片缩放,Drawable转化为Bitmap,Bitmap转化为Drawable等等
- JavaScript 处理图片相关操作
- android 图片处理操作学习1 显示
- android 一些相关处理网络图片与音乐(部分转载)
- Android Bitmap 图片处理细节
- JavaScript 处理图片相关操作
- 分享的是Android图像特效处理的小技巧,比如圆角、倒影、还有就是图片缩放、Drawable转化为Bitmap、Bitmap转化为Drawable等等
- 【bitmap】Android图片处理方法
- android在处理图片资源的时候,Drawable、Bitmap、byte[]之间的转换