问题描述
- 如何改变 android 代码的 buffered image 和 graphics?
-
我用下面的 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互相转换
时间: 2024-08-03 09:15:53