2012-07-10 80 views
0

我正在动态添加图像&文本视图到捕获的照片。以下是我添加视图后保存照片的代码。捕获的照片大小为1.3MB(照片由300万像素相机拍摄),但保存的照片大小仅为50KB。如何增加合成文件大小以获得最大分辨率?以高分辨率在android中保存图像

photoLayout.setDrawingCacheEnabled(true); 

    Bitmap b = Bitmap.createBitmap(photoLayout.getDrawingCache());  

    photoLayout.setDrawingCacheEnabled(false);  

    FileOutputStream fos = new FileOutputStream(path); 
    b.compress(CompressFormat.PNG, 100, fos); 
    fos.close(); 

回答

0

从位图格式转换为PNG格式将减小文件大小。看看你是否有你的输出图像所需的分辨率。位图格式是存储关于图像的每个单个像素的信息的未压缩格式。

0

如果你的文件只有50K,检查源位图 - 您可以用图像缩略图,而不是原始图像的工作。如果你加载一个大文件而你没有调整它的大小,没有理由得到这样一个小文件。文件大小应与原始文件大小相似。

你可以发布加载位图的代码吗?我几乎可以肯定你加载缩略图!

编辑: 要获得从相机中的照片:Capture Image from Camera and Display in Activity

+0

在从相机应用程序返回时,我'创造捕捉照片的位图和安排的照片作为我的屏幕的背景图像。然后我添加文本/图像的意见。现在我需要捕获最终的照片。所以我从背景视图布局创建了一张位图,其中我有我的照片并添加了视图。但文件大小太小 – Santhosh 2012-07-10 06:45:21

+0

我可以建议你检查你加载的图像是这样的:在你加载图像的行中放置一个断点并逐行运行代码。在执行加载图像的行之后,请检查位图的宽度和高度。如果你的体型很小......有问题! – 2012-07-10 06:53:43

+0

要从相机意图获取图像,您应该使用类似下面的内容:位图照片=(位图)data.getExtras()。get(“data”);在你的onActivityResult方法中。在这里看到一个例子:http://stackoverflow.com/questions/5991319/capture-image-from-camera-and-display-in-activity – 2012-07-10 06:55:27