【问题标题】:Beginner Android Dev Questions - Camera Specific Questions初学者 Android 开发问题 - 相机特定问题
【发布时间】:2012-03-08 21:42:45
【问题描述】:
我现在正在学习编程android,我只是有几个问题希望你们能帮助我。
1) 如果我让我的程序调用相机并让它能够拍照并且我想存储这些照片,我应该在哪里让商店对它们进行编程?在什么文件夹中?在 assest 或 res 文件夹中?
2) 我也想将图像发送到服务器,但我担心图像大小会太大。无论如何我可以压缩图像,使其更小,然后发送小版本?还是我可以从低分辨率/质量开始拍摄照片?
【问题讨论】:
标签:
android
image
sdk
camera
compression
【解决方案1】:
1) 您的应用程序在运行时无权更改资源/资产文件夹。您应该将其临时写入您的目录,或者您应该将其存储在 SD 卡中。
2) Bitmap API 能够在给定特定参数的情况下压缩图像。查看 SDK 网站了解更多信息。
【解决方案2】:
1.) 您可以将这些图像存储到外部目录或 sdcard。
String rootDir = Environment.getExternalStorageDirectory()
+ File.separator + "nameofyourfolder";
File rootFile = new File(rootDir);
rootFile.mkdir();
URL url = new URL(fileURL);
File newFile=new File(rootFile,fileName);
newFile.createNewFile();
FileOutputStream f = new FileOutputStream(newFile);
InputStream in = url.openConnection().getInputStream();
byte[] buffer = new byte[1024];
int len1 = 0;
while ((len1 = in.read(buffer)) > 0) {
f.write(buffer, 0, len1);
}
f.close();
2.) 您可以压缩图像大小:
int nh = (int) ( bitmap.getHeight() * (512.0 / bitmap.getWidth()) );
bitmap = Bitmap.createScaledBitmap(bitmap,512,nh,true);