android将文本绘制位图保存到jpeg文件

android将文本绘制位图保存到jpeg文件,android,bitmap,save,jpeg,Android,Bitmap,Save,Jpeg,我尝试制作一个android应用程序 并且它必须包含位图到jpeg文件的方法 这就是我要做的 1.创建位图可绘制对象 BitmapDrawable bitmapDrawable = (BitmapDrawable)res.getDrawable(R.drawable.my_pic); 2.创建位图对象 Bitmap bit = bitmapDrawable.getBitmap(); 3.在画布对象上创建设置位图 canvas.drawBitmap(bit,0,0,null)

我尝试制作一个android应用程序 并且它必须包含位图到jpeg文件的方法

这就是我要做的

1.创建位图可绘制对象

BitmapDrawable bitmapDrawable = (BitmapDrawable)res.getDrawable(R.drawable.my_pic);
2.创建位图对象

    Bitmap bit = bitmapDrawable.getBitmap();
3.在画布对象上创建设置位图

    canvas.drawBitmap(bit,0,0,null)
4.在画布上绘制文本“helloworld”

    Paint pnt = new Paint();
    pnt.setColor(Color.BLACK);
    canvas.drawText("helloworld",100,100,pnt);
    canvas.save();
    canvas.restore();
这段代码就是我试图将位图(或画布)保存到Jepg文件的代码

a

但这可以保存原始图像(无文本) 所以,我使用代码b

b

这会导致nullpoint异常,logcat会向我发送一条消息“视图太大,无法放入图形缓存,需要31325840字节,只有3686400可用”

如何将文本绘制位图保存到文件
请给出您的意见

您的图像的大小以及logcat的实际输出是什么?您是否尝试在代码“b”中调用
getDrawingCache(true)
?@blipinsk是的,我尝试过,但结果是一样的。@pablisco图像大小为A4,实际输出宽度:2317,高度:3380
    bit.compress(Bitmap.CompressFormat.JEPG, 100 , fileOutputStream);
    view.setDrawingCacheEnabled(true);
    Drawable drawable =getResources().getDrawable(R.drawable.my_pic);
    view.layout(0,0,drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight());
    view.bulidDrawingCache(true);

    Bitmap save_bit = view.getDrawingCache();  

    save_bit.compress(Bitmap.CompressFormat.JPEG, 100, fos);