android - 在 Android 上再次打开并保存相同的图像

标签 android android-image

我正在尝试打开图库中保存的图像,并在打开的图像上写了一些文本后,试图将其关闭。但到目前为止,它不起作用。你能告诉我我做错了什么吗?

**我检查了路径,是正确的。这是我的代码:

String path = android.os.Environment.getExternalStorageDirectory().toString() + "/DCIM/100LGDSC/";
String pathiki = path+filename;
Log.d("pathiki:",pathiki);

try {
  Bitmap bm = BitmapFactory.decodeFile(pathiki);  
  Typeface tf = Typeface.create("Helvetica", Typeface.BOLD);

  Paint paint = new Paint();
  paint.setStyle(Style.FILL);
  paint.setColor(Color.WHITE);
  paint.setTypeface(tf);
  paint.setTextAlign(Align.CENTER);
  paint.setTextSize(14);

  Canvas canvas = new Canvas(bm);
  canvas.drawText("bla bla bla", 100, 100, paint);

  OutputStream fOut = new FileOutputStream(new File(pathiki));
  bm.compress(Bitmap.CompressFormat.JPEG, 100, fOut);
  fOut.flush();
  fOut.close();
} catch (Exception e) {
  // TODO: handle exception
  e.toString();
}

最佳答案

BitmapFactory.decodeFile总是返回一个不可变的位图。使用 Bitmap.copy制作可变位图的副本。现在对复制的位图进行修改。

Bitmap bm = BitmapFactory.decodeFile(pathiki).copy(Bitmap.Config.ARGB_8888, true); 

更新异常处理代码。将 e.getMessage() 记录到 logcat 或使用 e.printStackTrace()

关于android - 在 Android 上再次打开并保存相同的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23453453/

相关文章:

android - 如何在 Android 上显示是/否对话框?

java - 如何正确地将图像放置在具有指定高度的 ImageView 的顶部?

android - 移动文本并重绘图像设备问题

java - 如何修复类 android.support.v7.internal.app.WindowDecorActionBar 的构建路径

安卓内存监视器 - "cause GC"

android - 如何管理 Android 应用程序的离线试用期?

android - 围绕其中心旋转 ImageView 而不切断其边缘

android - 使图像按钮大小始终为正方形。安卓

android - 如何使用 onRetainNonConfigurationInstance() 为屏幕方向保存位图?

android - getPixel 在 Android 中返回负值