我编辑了我的帖子,因为我知道在拍摄后立即调整图像是不可能的。所以我试图在裁剪它之后调整图像大小。我已经从这里实现了一些代码http://developer.android.com/training/displaying-bitmaps/load-bitmap.html#load-bitmap,但它仍然没有调整图像的大小。这是我的代码:
private void splitImage(File[]listFile, File mediaStorage,int[] chunkNumbers) throws IOException
{
int rows ,cols;
String[] namaFile = new String[listFile.length];
int chunk ;
File nf = null;
ArrayList<Bitmap> hasilSplit;
for(int i=0;i<listFile.length;i++)
{
int index=1;
namaFile[i] = listFile[i].getName();
String nama = namaFile[i].split("\\.")[0];
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
ResizeGambar rg = new ResizeGambar();
options.inSampleSize = rg.hitungInSampleSize(options);
//options.inJustDecodeBounds = false;
Bitmap gambarOri = BitmapFactory.decodeFile(listFile[i].getAbsolutePath(),options);
Bitmap scaledOri = Bitmap.createScaledBitmap(gambarOri, gambarOri.getWidth(), gambarOri.getHeight(), true);
//int chunk = (int)(gambarOri.getWidth() * gambarOri.getHeight()/100);
rows =(int) gambarOri.getWidth()/10;
cols =(int) gambarOri.getHeight()/10;
chunk = rows * cols;
chunkNumbers[i] = chunk;
System.out.println("Size of ChunkNumbers: " + chunkNumbers[i]);
hasilSplit = new ArrayList<Bitmap>(chunk);
int count = 0;
//koordinat awal chunk
for(int x=0;x<rows;x++)
{
for(int y=0;y<cols;y++)
{
hasilSplit.add(Bitmap.createBitmap(scaledOri,10*x,10*y,10,10));
nf = new File(mediaStorage.getPath()+File.separator+nama+index+".jpg");
index++;
FileOutputStream fo = new FileOutputStream(nf);
hasilSplit.get(count).compress(Bitmap.CompressFormat.JPEG, 50, fo);
count++;
fo.flush();
fo.close();
}
}
index= 1;
}
}
这是ResizeGambar.java
package com.example.cobaandroid;
import android.graphics.BitmapFactory;
public class ResizeGambar {
final int reqWidth = 50;
final int reqHeight=101;
public ResizeGambar()
{
}
public int hitungInSampleSize(BitmapFactory.Options options)
{
final int height = options.outHeight;
final int width = options.outWidth;
int inSampleSize = 1;
if( height > reqHeight || width > reqWidth)
{
final int halfHeight = height/2;
final int halfWidth = width/2;
while((halfWidth/inSampleSize) > reqWidth && (halfHeight/inSampleSize) > reqHeight)
{
inSampleSize *=2;
}
}
return inSampleSize;
}
}
请任何人帮助我:(
答案 0 :(得分:1)
在保存到sdCard之前捕获图像后是否可以立即调整图像大小?
不,因为你不是拍照的人。另一个应用是,无论哪个人处理您的ACTION_IMAGE_CAPTURE
请求。
答案 1 :(得分:0)
这里有a link有些类似的问题及其解决方案。看看吧!