2009-12-21 120 views
1

我能够保存源图像,但无法保存图像与colorfilter: paint.setColorFilter(new ColorMatrixColorFilter(cm));如何转换为绘画图像转换为位图

如果将图像转换为位图,可以方便地保存, 但我不知道如何做到这一点。有没有人提供解决方案?

回答

1
  1. 有你的原始位图。
  2. 创建一个新的干净的位图,它具有与原始位图相同的宽度/高度。
  3. 使用这个干净的位图创建一个新的画布。
  4. 设置这个新Canvas的绘画对象等。
  5. 将您的原始位图绘制到此新Canvas中。

由于此新Canvas由位图(点3)支持,因此您在此Canvas中执行的任何绘图将成为新位图(点2)的一部分。现在只需从第2点调用此位图上的'compress',并将位图保存为jpg/png。

+0

canvas1 = new Canvas(cBitmap); canvas1.drawBitmap(cBitmap,x,y,paint); MediaStore.Images.Media.insertImage(getContentResolver(), \t \t \t的CBitmap, \t空, \t NULL); 我创建了上述为你说的,但我仍然不打包将图像保存为位图...请帮助 – starter 2009-12-22 08:42:40

+0

//您已经有originalBitmap及其'宽度'和'高度'。 位图newBitmap = Bitmap.create(width,height,config); Canvas canvas1 = new Canvas(newBitmap); canvas1.drawBitmap(originalBitmap,0,0,paint); (您可能希望在画布上设置合适的clipRect1) 在此代码之后,newBitmap包含由'paint'修改的originalBitmap。 要么使用newBitmap调用insertImage,要么调用newBitmap.compress(...) – 2009-12-22 22:41:47

+0

现在它的工作正常,但我无法保存到SD卡...图像只保存在相机图片中 – starter 2009-12-28 06:54:36