急求!android问题!

lsyForAndroid 2014-02-15 04:40:11
capture.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG, "拍照!");
// 从照相机的image
mCamera.takePicture(null, null, mPicture);
Log.d(TAG, "进入图片处理。。。。");
// 进入图片处理阶段
Intent intent_Image = new Intent(MainActivity.this,
Image_Processing.class);
startActivity(intent_Image);
}
});
这段代码不能正常执行mCamera.takePicture(null, null, mPicture);!求大神指点迷津!方法如下:

private PictureCallback mPicture = new PictureCallback() {

@Override
public void onPictureTaken(byte[] data, Camera camera) {
Log.d(TAG, "onPictureTaken");
try {
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0,
data.length);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 50, baos);// 向缓冲区压缩图片
WriteToSQL(bitmap, baos);
baos.close();
// 将图片写入数据库
Log.d(TAG, "写入数据库成功!");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

File pictureFile = getOutputMediaFile(MEDIA_TYPE_IMAGE);
Log.d(TAG, "压缩图片完毕!");
if (pictureFile == null) {
Log.d(TAG,
"Error creating media file,check storage permissions");
return;
}
try {
FileOutputStream fos = new FileOutputStream(pictureFile);
fos.write(data);
fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.d(TAG, "File not found:" + e.getMessage());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.d(TAG, "Error in accessing file:" + e.getMessage());
}
// 拍照后重新预览
mCamera.stopPreview();
mCamera.startPreview();
}
};
本人新手,隐约觉着不是方法的事!是不是我的onClick那个地方写错了!求指点,很急,给老师做的项目!
...全文
122 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsyForAndroid 2014-02-15
  • 打赏
  • 举报
回复
手头紧,没分了,在这里再发一个问题
Log如下:

方法如下:private String HandleMessage(Bitmap bitmap){
String data="";
int x = 0;
float k=0,z=0,t=0;
int[] mArrayColors=new int[65535];
byte R,G,B,gray;
//图像的宽高
int maxWidth=bitmap.getWidth();
int maxHeight=bitmap.getHeight();
for(int i=0;i<maxHeight;i++){
for(int j=0;j<maxWidth;j++){
//基于坐标取出相对应的RGB
int rgb=bitmap.getPixel(i, j);
mArrayColors[x]=rgb;
R = (byte)((rgb & 0xff0000) >> 16);
G = (byte)((rgb & 0xff00) >> 8);
B = (byte)(rgb & 0xff);
if (B<110) t++;
gray =(byte) (R*0.5 + G*0.39 +B*0.11);
if(gray>72){
bitmap.setPixel(i,j,Color.WHITE);
mArrayColors[x]=bitmap.getPixel(i, j);
k++;
}
else{
bitmap.setPixel(i, j,Color.BLACK );
mArrayColors[x]=bitmap.getPixel(i, j);
}
x++;
}
z = (k)/t;
//处理完后重新加载处理后的图片
Bitmap.createBitmap(mArrayColors,0,0, null);
data="玉米发霉率为:"+z+"%";
//处理完后赋予空值!
mArrayColors=null;
}
return data;
lsyForAndroid 2014-02-15
  • 打赏
  • 举报
回复
求大神啊求大神!
lsyForAndroid 2014-02-15
  • 打赏
  • 举报
回复
自顶一个,速度来大神,急求解决!

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧