我正试图在透明位图上绘制手指。我使用的画布画得很好,但是当我保存图像时,图像显示如下,所有水平透明线。
我使用以下代码绘制。
private void doDraw(Canvas canvas) {
mOffScreenCanvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
for(int index = 0; index < mAnnotations.size(); index++) {
InkAnnotation annotation = mAnnotations.get(index);
annotation.draw(mOffScreenCanvas, ActivityPageToolBar.mCurrentTool.paint());
}
if(canvas != null && mSurface != null) {
canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
canvas.drawBitmap(mSurface, 0, 0, mPaint);
}
}
使用
保存文件 Bitmap saveBitmap = Bitmap.createBitmap(map);
Canvas c = new Canvas(saveBitmap);
c.drawColor(0xFFFFFFFF);
c.drawBitmap(map,0,0,null);
我使用标准文件保存来保存它
try {
FileOutputStream out = handle.outputStream();
if(handle.fileName().contains(".png")) {
((Bitmap) handle.data()).compress(CompressFormat.PNG, quality, out);
} else if(handle.fileName().contains(".jpg") || handle.fileName().contains(".jpeg")) {
((Bitmap) handle.data()).compress(CompressFormat.JPEG, quality, out);
} else {
((Bitmap) handle.data()).compress(CompressFormat.WEBP, quality, out);
}
out.flush();
out.close();
} catch(Exception e) {
e.printStackTrace();
}
有什么方法可以解决这个问题吗?与此同时,我将位图嵌入到pdf中,颜色比它们应该更暗。
这是我保存之前屏幕上的图像。背景是无关紧要的,我可以很好地绘制到屏幕上,但是当它保存到png时它看起来很乱。
答案 0 :(得分:0)
我通过获取我在surfaceview上创建的点并从这些点创建一个新的位图来解决这个问题。它必须对它的位图做一些表面才能引起这种情况。