我正在制作一个我拍照的应用程序,我需要在图片的一角写一些文字。我已经有了一些可以在白色矩形上绘制黑色文字的东西:
private void tagPhoto(Bitmap bitmap){
// Initiates paint object for canvas
Paint p = getMarker();
// Initialize canvas
Canvas tempCanvas = new Canvas(bitmap);
// Measure text
p.getTextBounds(text, 0, text.length(), textFrame); // textFrame is a Rect object
// Draw frame for text
tempCanvas.drawRect(0, 0,
textFrame.width() + 2* MARGIN, textFrame.height() + 2* MARGIN,
p);
p.setColor(Color.BLACK);
// Write the mark on the canvas
tempCanvas.drawText(text, MARGIN, textFrame.height() + MARGIN, p);
}
然后我将位图保存到文件中。我正在寻找优化此代码。
在搜索时,我正在搜索并偶然发现BitmapRegionDecoder
,这有助于只加载部分位图。我想知道我是否可以使用它,然后将修改后的部分保存在源位图而不将其加载到缓存上。
还是有其他方法我不知道如何有效地标记Jpeg文件?