保存的位图是黑色的
Saved Bitmap is black
我创建了一个带有文本的位图,我可以在 Imageview 中查看它,但是当我保存位图时,我只得到一个黑色图像。我花了三个小时看类似的问题,但 none 对我有用。这是代码。
感谢您的帮助。
public void createBitmap(){
Bitmap LabelBitmap;
FileOutputStream fos = null;
//create Text Bitmap
LabelBitmap = textAsBitmap(this,"BRO D 0813","fonts/arialbd.ttf", 4, Color.BLACK);
//load bitmap in to Imageview
ImageView myImageView = (ImageView) findViewById(R.id.imageView);
myImageView.setImageBitmap(LabelBitmap);
// save bitmap
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/myfolder");
myDir.mkdirs();
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
LabelBitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
if (!myDir.exists()) {
myDir.mkdir();
}
File myDirFile = new File(root +"/myfolder/mybitmap.jpg");
try {
if(myDirFile.exists()){
myDirFile.delete();
}
myDirFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
try {
fos = new FileOutputStream(myDirFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
fos.write(bytes.toByteArray());
fos.flush();
fos.close();
Toast.makeText(this, "Image saved", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
}
}
JPEG
图片默认为黑色背景,因此如果您的文本颜色也是黑色,您将获得黑色图片。如果您的图像没有背景颜色,则必须将其保存为 PNG
。改成下面试试:
LabelBitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
至:
LabelBitmap.compress(Bitmap.CompressFormat.PNG, 100, bytes);
我创建了一个带有文本的位图,我可以在 Imageview 中查看它,但是当我保存位图时,我只得到一个黑色图像。我花了三个小时看类似的问题,但 none 对我有用。这是代码。 感谢您的帮助。
public void createBitmap(){
Bitmap LabelBitmap;
FileOutputStream fos = null;
//create Text Bitmap
LabelBitmap = textAsBitmap(this,"BRO D 0813","fonts/arialbd.ttf", 4, Color.BLACK);
//load bitmap in to Imageview
ImageView myImageView = (ImageView) findViewById(R.id.imageView);
myImageView.setImageBitmap(LabelBitmap);
// save bitmap
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/myfolder");
myDir.mkdirs();
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
LabelBitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
if (!myDir.exists()) {
myDir.mkdir();
}
File myDirFile = new File(root +"/myfolder/mybitmap.jpg");
try {
if(myDirFile.exists()){
myDirFile.delete();
}
myDirFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
try {
fos = new FileOutputStream(myDirFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
fos.write(bytes.toByteArray());
fos.flush();
fos.close();
Toast.makeText(this, "Image saved", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
}
}
JPEG
图片默认为黑色背景,因此如果您的文本颜色也是黑色,您将获得黑色图片。如果您的图像没有背景颜色,则必须将其保存为 PNG
。改成下面试试:
LabelBitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
至:
LabelBitmap.compress(Bitmap.CompressFormat.PNG, 100, bytes);