私はアンドロイドが初めてです。私はある種の画像処理をしようとしています。しかし、「このアプリケーション --- が予期せず停止しました。もう一度やり直してください。」というメッセージが表示されます。私が犯している間違いを教えてください
package com.imagep.amit;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;
import android.widget.ImageView;
public class ImagepActivity extends Activity {
/** Called when the activity is first created. */
Bitmap myBitmap;
ImageView myImageView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String imageFileName= "/sdcard/test_vga.jpg";
File imageFile= new File(imageFileName);
if (imageFile.exists()) {
// Load the image from file
myBitmap= BitmapFactory.decodeFile(imageFileName);
// Display the image in the image viewer
myImageView= (ImageView)findViewById(R.id.di);
if (myImageView!= null) {
myImageView.setImageBitmap(myBitmap);
}
}
this.processImage();
}
private void processImage() {
brighten(50);
try {
String outputPath= "/test_vga_output.jpg";
int quality = 75;
FileOutputStream fileOutStr= new FileOutputStream(outputPath);
BufferedOutputStream bufOutStr= new BufferedOutputStream(fileOutStr);
myBitmap.compress(CompressFormat.JPEG, quality, bufOutStr);
bufOutStr.flush();
bufOutStr.close();
} catch (FileNotFoundException exception) {
Log.e("debug_log", exception.toString());
} catch (IOException exception) {
Log.e("debug_log", exception.toString());
}
myImageView.setImageBitmap(myBitmap);
}
private void brighten(int i) {
int width = myBitmap.getWidth();
int height = myBitmap.getHeight();
int[] pix = new int[width * height];
myBitmap.getPixels(pix, 0, width, 0, 0, width, height);
// Apply pixel-by-pixel change
int index = 0;
for(int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
int r = (pix[index] >> 16) & 0xff;
int g = (pix[index] >> 8) & 0xff;
int b = pix[index] & 0xff;
r = 0;
g = 0;
b = 0;
pix[index++] = 0xff000000| (r << 16) | (g << 8) | b;
} // x
} // y
// TODO Auto-generated method stub
}
}
}