在 codenameone 中保存具有特定名称和压缩大小的照片
save a photo with a specific name and compressed size in codenameone
我想拍张照片并用特定名称和压缩尺寸(低质量)保存。我该怎么做?图片以随机名称保存在 Android 设备和模拟器上。
String filePath = Capture.capturePhoto();
if(filePath != null) {
try {
ImageIO io = ImageIO.getImageIO();
io.saveAndKeepAspect(filePath,
FileSystemStorage.getInstance().getAppHomePath()+"testImage.jpg",
ImageIO.FORMAT_JPEG, 100, 100, 0.1f, true, false);
InputStream inputStream = FileSystemStorage.getInstance().openInputStream(FileSystemStorage.getInstance().
getAppHomePath()+"testImage.jpg");
Image readImage = Image.createImage(inputStream);
Util.cleanup(inputStream);
imgViewer.setImage(readImage);
} catch(IOException err) {
err.printStackTrace();
}
hi.add(imgViewer);
hi.show();
我做过类似的事情,但我使用了 Storage,尽管我为您添加了 FileSystemStorage 的评论。
这些行以我在 outputStream 中声明的名称创建文件。
//OutputStream os = FileSystemStorage.getInstance().openOutputStream(fileName);
OutputStream os = Storage.getInstance().createOutputStream(fileName);
ImageIO.getImageIO().save(img, os, ImageIO.FORMAT_JPEG, 0.9f);
os.close();
编辑:这是一个示例,您的代码与我提供的行混合在一起,它在我的模拟器上运行良好。
String filePath = Capture.capturePhoto();
if (filePath != null) {
try {
Image img = Image.createImage(filePath);
OutputStream os = FileSystemStorage.getInstance().openOutputStream(FileSystemStorage.getInstance().getAppHomePath() + "xyz.jpg");
ImageIO.getImageIO().save(img, os, ImageIO.FORMAT_JPEG, 0.9f);
os.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
我想拍张照片并用特定名称和压缩尺寸(低质量)保存。我该怎么做?图片以随机名称保存在 Android 设备和模拟器上。
String filePath = Capture.capturePhoto();
if(filePath != null) {
try {
ImageIO io = ImageIO.getImageIO();
io.saveAndKeepAspect(filePath,
FileSystemStorage.getInstance().getAppHomePath()+"testImage.jpg",
ImageIO.FORMAT_JPEG, 100, 100, 0.1f, true, false);
InputStream inputStream = FileSystemStorage.getInstance().openInputStream(FileSystemStorage.getInstance().
getAppHomePath()+"testImage.jpg");
Image readImage = Image.createImage(inputStream);
Util.cleanup(inputStream);
imgViewer.setImage(readImage);
} catch(IOException err) {
err.printStackTrace();
}
hi.add(imgViewer);
hi.show();
我做过类似的事情,但我使用了 Storage,尽管我为您添加了 FileSystemStorage 的评论。 这些行以我在 outputStream 中声明的名称创建文件。
//OutputStream os = FileSystemStorage.getInstance().openOutputStream(fileName);
OutputStream os = Storage.getInstance().createOutputStream(fileName);
ImageIO.getImageIO().save(img, os, ImageIO.FORMAT_JPEG, 0.9f);
os.close();
编辑:这是一个示例,您的代码与我提供的行混合在一起,它在我的模拟器上运行良好。
String filePath = Capture.capturePhoto();
if (filePath != null) {
try {
Image img = Image.createImage(filePath);
OutputStream os = FileSystemStorage.getInstance().openOutputStream(FileSystemStorage.getInstance().getAppHomePath() + "xyz.jpg");
ImageIO.getImageIO().save(img, os, ImageIO.FORMAT_JPEG, 0.9f);
os.close();
}
catch (Exception e) {
e.printStackTrace();
}
}