亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

android圖片圓角、圖片去色處理示例

2020-04-11 11:50:21
字體:
來源:轉載
供稿:網友

Android中圖片處理

用來對Android中的項目圖片進行處理

復制代碼 代碼如下:

package com.zhanggeng.contact.tools;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.Paint;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.drawable.BitmapDrawable;
import android.view.ViewGroup;
import android.view.animation.AccelerateInterpolator;

/**
 * 處理圖片的工具類.
 *
 */
public class ImageTools {

 /** */
 /**
  * 圖片去色,返回灰度圖片
  *
  * @param bmpOriginal
  *            傳入的圖片
  * @return 去色后的圖片
  */
 public static Bitmap toGrayscale(Bitmap bmpOriginal) {
  int width, height;
  height = bmpOriginal.getHeight();
  width = bmpOriginal.getWidth();
  Bitmap bmpGrayscale = Bitmap.createBitmap(width, height,
    Bitmap.Config.RGB_565);
  Canvas c = new Canvas(bmpGrayscale);
  Paint paint = new Paint();
  ColorMatrix cm = new ColorMatrix();
  cm.setSaturation(0);
  ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
  paint.setColorFilter(f);
  c.drawBitmap(bmpOriginal, 0, 0, paint);
  return bmpGrayscale;
 }

 /** */
 /**
  * 去色同時加圓角
  *
  * @param bmpOriginal
  *            原圖
  * @param pixels
  *            圓角弧度
  * @return 修改后的圖片
  */
 public static Bitmap toGrayscale(Bitmap bmpOriginal, int pixels) {
  return toRoundCorner(toGrayscale(bmpOriginal), pixels);
 }

 /** */
 /**
  * 把圖片變成圓角
  *
  * @param bitmap
  *            需要修改的圖片
  * @param pixels
  *            圓角的弧度
  * @return 圓角圖片
  */
 public static Bitmap toRoundCorner(Bitmap bitmap, int pixels) {

  Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
    bitmap.getHeight(), Config.ARGB_8888);
  Canvas canvas = new Canvas(output);

  final int color = 0xff424242;
  final Paint paint = new Paint();
  final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
  final RectF rectF = new RectF(rect);
  final float roundPx = pixels;

  paint.setAntiAlias(true);
  canvas.drawARGB(0, 0, 0, 0);
  paint.setColor(color);
  canvas.drawRoundRect(rectF, roundPx, roundPx, paint);

  paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
  canvas.drawBitmap(bitmap, rect, rect, paint);

  return output;
 }

 /** */
 /**
  * 使圓角功能支持BitampDrawable
  *
  * @param bitmapDrawable
  * @param pixels
  * @return
  */
 public static BitmapDrawable toRoundCorner(BitmapDrawable bitmapDrawable,
   int pixels) {
  Bitmap bitmap = bitmapDrawable.getBitmap();
  bitmapDrawable = new BitmapDrawable(toRoundCorner(bitmap, pixels));
  return bitmapDrawable;
 }

 /**
  * 讀取路徑中的圖片,然后將其轉化為縮放后的bitmap
  *
  * @param path
  */
 public static void saveBefore(String path) {
  BitmapFactory.Options options = new BitmapFactory.Options();
  options.inJustDecodeBounds = true;
  // 獲取這個圖片的寬和高
  Bitmap bitmap = BitmapFactory.decodeFile(path, options); // 此時返回bm為空
  options.inJustDecodeBounds = false;
  // 計算縮放比
  int be = (int) (options.outHeight / (float) 200);
  if (be <= 0)
   be = 1;
  options.inSampleSize = 2; // 圖片長寬各縮小二分之一
  // 重新讀入圖片,注意這次要把options.inJustDecodeBounds 設為 false哦
  bitmap = BitmapFactory.decodeFile(path, options);
  int w = bitmap.getWidth();
  int h = bitmap.getHeight();
  System.out.println(w + "   " + h);
  // savePNG_After(bitmap,path);
  saveJPGE_After(bitmap, path);
 }

 /**
  * 保存圖片為PNG
  *
  * @param bitmap
  * @param name
  */
 public static void savePNG_After(Bitmap bitmap, String name) {
  File file = new File(name);
  try {
   FileOutputStream out = new FileOutputStream(file);
   if (bitmap.compress(Bitmap.CompressFormat.PNG, 100, out)) {
    out.flush();
    out.close();
   }
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

 /**
  * 保存圖片為JPEG
  *
  * @param bitmap
  * @param path
  */
 public static void saveJPGE_After(Bitmap bitmap, String path) {
  File file = new File(path);
  try {
   FileOutputStream out = new FileOutputStream(file);
   if (bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out)) {
    out.flush();
    out.close();
   }
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

 /**
  * 圖片合成
  *
  * @param bitmap
  * @return
  */
 private Bitmap createBitmap(Bitmap src, Bitmap watermark) {
  if (src == null) {
   return null;
  }
  int w = src.getWidth();
  int h = src.getHeight();
  int ww = watermark.getWidth();
  int wh = watermark.getHeight();
  // create the new blank bitmap
  Bitmap newb = Bitmap.createBitmap(w, h, Config.ARGB_8888);// 創建一個新的和SRC長度寬度一樣的位圖
  Canvas cv = new Canvas(newb);
  // draw src into
  cv.drawBitmap(src, 0, 0, null);// 在 0,0坐標開始畫入src
  // draw watermark into
  cv.drawBitmap(watermark, w - ww + 5, h - wh + 5, null);// 在src的右下角畫入水印
  // save all clip
  cv.save(Canvas.ALL_SAVE_FLAG);// 保存
  // store
  cv.restore();// 存儲
  return newb;
 }

 // 將圖片轉換成byte[]以便能將其存到數據庫
 public static byte[] getByteFromBitmap(Bitmap bitmap) {
  ByteArrayOutputStream out = new ByteArrayOutputStream();
  bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
  try {
   out.flush();
   out.close();
  } catch (IOException e) {
   e.printStackTrace();
   // Log.e(TAG, "transform byte exception");
  }
  return out.toByteArray();
 }

 // 得到存儲在數據庫中的圖片
 // eg imageView.setImageBitmap(bitmapobj);
 public static Bitmap getBitmapFromByte(byte[] temp) {
  if (temp != null) {
   Bitmap bitmap = BitmapFactory.decodeByteArray(temp, 0, temp.length);
   return bitmap;
  } else {
   // Bitmap bitmap=BitmapFactory.decodeResource(getResources(),
   // R.drawable.contact_add_icon);
   return null;
  }
 }
    //將手機中的文件轉換為Bitmap類型
 public static Bitmap getBitemapFromFile(File f) {
  if (!f.exists())
   return null;
  try {
   return BitmapFactory.decodeFile(f.getAbsolutePath());
  } catch (Exception ex) {
   return null;
  }
 }
 //將手機中的文件轉換為Bitmap類型(重載+1)
 public static Bitmap getBitemapFromFile(String fileName) {

  try {
   return BitmapFactory.decodeFile(fileName);
  } catch (Exception ex) {
   return null;
  }
 }

}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品午夜国产小视频| 最新91在线视频| 亚洲黄色av女优在线观看| 久久999免费视频| 亚洲伊人一本大道中文字幕| 欧美日韩国产二区| 国产日韩欧美电影在线观看| 国产欧美va欧美va香蕉在| 国产啪精品视频| 插插插亚洲综合网| 色悠悠国产精品| 国产精品永久免费| 九九久久综合网站| 日本一区二区三区在线播放| 亚洲成人av片在线观看| 91老司机精品视频| 久久久中文字幕| 久久久久久久久久久国产| 亚洲字幕一区二区| 一区二区三区视频免费| 午夜精品福利视频| 国产欧美日韩免费看aⅴ视频| 不卡毛片在线看| 精品久久香蕉国产线看观看亚洲| 欧美天堂在线观看| 亚洲国产三级网| 久久人人爽人人| xxxx性欧美| 亚洲欧美日韩直播| www国产亚洲精品久久网站| 亚洲精品久久久久久久久久久久久| 搡老女人一区二区三区视频tv| 欧美在线亚洲一区| 国产精品一区二区女厕厕| 亚洲一区二区久久| 日本亚洲欧美成人| 久久精品一区中文字幕| 欧美有码在线视频| 亚洲成人av中文字幕| 日韩精品视频在线观看网址| 欧美激情一区二区三级高清视频| 久久成人精品一区二区三区| 欧美成人精品在线视频| 欧美另类老女人| 日日噜噜噜夜夜爽亚洲精品| 性色av香蕉一区二区| 欧美成人午夜免费视在线看片| 日韩av免费看| 欧美在线免费观看| 91国产高清在线| 亚洲国产精品电影在线观看| 国产成人精品久久二区二区91| 国产欧美最新羞羞视频在线观看| 欧美丝袜第一区| 亚洲精品美女久久| 欧美xxxx18国产| 性欧美暴力猛交69hd| 中文字幕久久亚洲| 91影视免费在线观看| 色老头一区二区三区在线观看| 国内精品伊人久久| 亚洲欧洲高清在线| 日韩av在线免费看| 亚洲精品国产电影| 97色伦亚洲国产| 日韩精品免费观看| 91免费人成网站在线观看18| 大伊人狠狠躁夜夜躁av一区| 久久黄色av网站| 亚洲图中文字幕| 最新日韩中文字幕| 久久久久久久久久久免费| 亚洲国产精品视频在线观看| 成人激情免费在线| 精品欧美aⅴ在线网站| 91国产精品视频在线| 国产精品久久久久久久久影视| 国产亚洲一区二区精品| 欧日韩不卡在线视频| 日韩免费观看高清| 国产精品久久久久久五月尺| 日韩成人激情视频| 国产精品va在线播放我和闺蜜| 国产欧美亚洲视频| 亚洲免费影视第一页| www高清在线视频日韩欧美| 欧美专区在线观看| 国产精品三级美女白浆呻吟| 欧美性视频在线| 国产精品美女免费视频| 欧美日韩国产麻豆| 亚洲综合日韩在线| 一本一本久久a久久精品综合小说| 亚洲白拍色综合图区| 韩剧1988免费观看全集| 伊人久久久久久久久久久| 亚洲成人精品久久| 久久精品国产91精品亚洲| 欧美—级a级欧美特级ar全黄| 国产欧美最新羞羞视频在线观看| 亚洲欧美一区二区三区四区| 亚洲黄色av女优在线观看| 一本大道香蕉久在线播放29| 日韩在线视频导航| 国产精品亚洲一区二区三区| 国产精品免费视频久久久| 亚洲色图15p| 国产一区二区三区在线播放免费观看| 久久国产一区二区三区| 国产亚洲精品久久| 欧美俄罗斯性视频| 中文字幕亚洲国产| 免费91麻豆精品国产自产在线观看| 亚州国产精品久久久| 欧美另类暴力丝袜| 亚洲黄页网在线观看| 亚洲天堂av高清| 黑人精品xxx一区一二区| 欧美亚洲一区在线| 美女久久久久久久久久久| 欧美日韩在线视频观看| 在线视频亚洲欧美| 欧美中文字幕在线| 国产成人综合精品在线| 亚洲精品福利免费在线观看| 最近2019年日本中文免费字幕| 欧美一级淫片丝袜脚交| 亚洲精品在线观看www| 97国产一区二区精品久久呦| 91免费人成网站在线观看18| 国产成人av网| 欧美性资源免费| 国产精选久久久久久| 国产综合色香蕉精品| 国内精品视频在线| 欧美寡妇偷汉性猛交| 热门国产精品亚洲第一区在线| 欧美视频专区一二在线观看| 国产免费一区视频观看免费| www欧美日韩| 96精品视频在线| 中文字幕在线日韩| 欧美激情第一页xxx| 久久精品国产91精品亚洲| 成人动漫网站在线观看| 在线观看国产精品淫| 日韩电影视频免费| 性欧美亚洲xxxx乳在线观看| 久久久久亚洲精品| 亚洲精品国产suv| 欧美黑人又粗大| 国产精品久久久久高潮| 91精品久久久久久久久久另类| 91视频国产一区| 国产日韩欧美中文在线播放| 精品久久久久久| 日韩在线视频线视频免费网站| 国内伊人久久久久久网站视频| 欧美在线不卡区| 欧美猛交ⅹxxx乱大交视频| 亚洲人成电影在线观看天堂色| 久久九九国产精品怡红院| 91在线观看免费观看| 亚洲精品资源在线|