[英]Bitmap quality bad after sending (Android/Java)
我正在使用以下位图:
View v1 = (View) wpm.getParent().getParent();
Bitmap cs = null;
v1.setDrawingCacheEnabled(true);
v1.buildDrawingCache(true);
cs = Bitmap.createBitmap(v1.getDrawingCache(true));
Canvas canvas = new Canvas(cs);
v1.draw(canvas);
canvas.save();
v1.setDrawingCacheEnabled(false);
String path = Images.Media.insertImage(getContext().getContentResolver(), cs, "MyImage", null);
Uri file = Uri.parse(path);
OutputStream outStream = null;
try {
outStream = getContext().getContentResolver().openOutputStream(file);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
cs.compress(Bitmap.CompressFormat.JPEG, 100, outStream);
//file senden
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.putExtra(Intent.EXTRA_STREAM, file);
sharingIntent.setType("image/jpeg");
getContext().startActivity(Intent.createChooser(sharingIntent,"Erfolg teilen!"));
当我通过Facebook,Whatsapp发送邮件时,...质量很差。 但是,如果我将其复制到PC上,它看起来正常,那么在通过Facebook发送之前,我可以检查它的外观以及那里的外观。 仅在发送后看起来很糟糕。 我该如何更改?
尝试设置:
yourView.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
如果您的起始位有品质不好,你不能使它与bitmap.compress更好。
请记住 ,更好的质量需要更多的内存。
问题来自以下行:
cs.compress(Bitmap.CompressFormat.JPEG, 100, outStream);
质量100太高,并生成JPG文件的大小过大,无法通过Facebook的被接受。 因此,Facebook的这个压缩图像,并减少其质量。 使用以下代码可以解决您的问题:
cs.compress(Bitmap.CompressFormat.JPEG, 70, outStream);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.