我用下面的 Java 代碼創建了 BufferedImage 和 Graphics,如何把下面的 Java 代碼改成Android 的?
public static BufferedImage buff(BufferedImage bi){
if (isGray(bi)){
return bi;
}
BufferedImage gray = new BufferedImage(bi.getWidth(), bi.getHeight(), 10);
Graphics gr = gray.getGraphics();
gr.drawImage(bi, 0, 0, null);
gr.dispose();
return gray;
}
不知道你為什麼傳進去的是BufferedImage,返回值也是BufferedImage。
Android 中圖片類用Bitmap,網上搜索Bitmap用法,或查看Api
public static Bitmap readBitmap(Context context, int resId) {
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inPreferredConfig = Bitmap.Config.RGB_565;
opt.inPurgeable = true;
opt.inInputShareable = true;
// 獲取資源圖片
InputStream is = context.getResources().openRawResource(resId);
return BitmapFactory.decodeStream(is, null, opt);
}
public static Drawable getImageFromAssetsFile(Context context,
String fileName) {
Drawable image = null;
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inPreferredConfig = Bitmap.Config.RGB_565;
opt.inPurgeable = true;
opt.inInputShareable = true;
AssetManager am = context.getResources().getAssets();
try {
InputStream is = am.open(fileName);
Bitmap bmp = BitmapFactory.decodeStream(is, null, opt);
image = new BitmapDrawable(bmp);
is.close();
bmp = null;
} catch (IOException e) {
e.printStackTrace();
}
return image;
}
也可以和Drawable互相轉換