我的应用程序,当用户点击捕获按钮时,开始摄像头捕获。
我使用位图API。但有时记忆问题。
所以我想使用Glide
库。
当前我的来源
//Run on Preview call from Camera
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
YuvImage image = new YuvImage(data, previewFormat, 640, 480, null);
Rect rect = new Rect(0, 0, 640, 480);
ByteArrayOutputStream bao = new ByteArrayOutputStream();
image.compressToJpeg(rect, 100, bao); //Compress data in YUY2 format into a rectangular area in jpeg format.
byte[] jpeg = bao.toByteArray();
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.RGB_565;
Bitmap convertedImage = BitmapFactory.decodeByteArray(jpeg, 0, jpeg.length, options); //byte array to bitmap
mCallback.imageTaken(Bitmap.createScaledBitmap(convertedImage, 480, 360, true));
}
imageTaken(CaptureView.class)
//completed capture picture.
public void imageTaken(Bitmap bitmap) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
displayImage(bitmap); //preview bitmap image.
}
displayImage(CaptureView.class);
public class CaptureView extends View implements CaptureViewer {
private Bitmap mBitmap = null;
private Rect src = new Rect(120, 96, 342, 272);
private Rect dst;
private int viewWidth, viewHeight = 0;
@Override
protected void onMeasure(int width, int height) {
super.onMeasure(width, height);
viewWidth = getLayoutParams().width;
viewHeight = getLayoutParams().height;
dst = new Rect(0, 0, viewWidth, viewHeight);
}
@Override
public void displayImage(Bitmap image) {
if (mBitmap != null) {
mBitmap.recycle();
}
mBitmap = null;
mBitmap = Bitmap.createBitmap(image);
postInvalidate();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawBitmap(mBitmap, src, dst, null);
}
}
这个源码工作,但我想使用Glide库。 大多数例子都使用url glide library。
但我希望位图能够成像滑翔库。
如何使用glide android将位图或字节数组转换为图像?
答案 0 :(得分:0)
我认为使用下面的代码可以获得位图
Glide.with(this)
.asBitmap()
.load(path)
.into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) {
imageView.setImageBitmap(resource);
}
});
答案 1 :(得分:0)
你可以试试这个。取自here
public void imageTaken(Bitmap bitmap) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
Glide.with(this)
.load(stream.toByteArray())
.asBitmap()
.error(R.drawable.ic_thumb_placeholder)
.transform(new CircleTransform(this))
.into(yourImageView); //preview bitmap image.
}