2

我如何在这张图片中写一些文字,我会添加一些信息。

YuvImage image = new YuvImage(data, ImageFormat.NV21, maxwidth, maxheight, null);
Rect rectangle = new Rect();
rectangle.bottom = maxheight;
rectangle.top = 0;
rectangle.left = 0;
rectangle.right = maxwidth;
ByteArrayOutputStream output = new ByteArrayOutputStream();
image.compressToJpeg(rectangle, 95, output);
4

1 回答 1

2

如果您的意思是在图像中添加一些文本是为了添加EXIF信息,
那么您可以查看此链接: Write/Geotag JPEGs (EXIF data) in Android

如果您想在图像上绘制一些文本,那么以下可能会有所帮助:
将以下代码放在image.compressToJpeg(rectangle, 95, output);.
建议image.compressToJpeg(rectangle, 100, output);在绘图时更改此线以获得更好的图像质量。

// Decode the JPEG byte array from 'output' to 'Bitmap' object
Bitmap bmp = BitmapFactory.decodeByteArray(output.toByteArray(), 0, output.size());

// Use 'Canvas' to draw text ont 'Bitmap'
Canvas cv = new Canvas(bmp);

// Prepare 'Paint' for text drawing
Paint mPaint = new Paint();
mPaint.setColor( Color.RED );
mPaint.setStyle( Style.STROKE );
mPaint.setTextSize(20);

// Draw text on the 'Bitmap' image
cv.drawText("TEXT To SHOW", 10, 10, mPaint);

// Reset the stream of 'output' for output writing.
output.reset();

// Compress current 'Bitmap' to 'output' as JPEG format
bmp.compress(CompressFormat.JPEG, 95, output);

然后,您可以使用输出来做任何您需要的事情。

于 2013-05-16T02:53:08.687 回答