嗨,我正在尝试在 android 中实现图像模糊,我喜欢它的很多示例,但我正在尝试使用此代码
private Bitmap getBlurBitmap(Bitmap bitmap, int radius)
{
int w,h,total;
if(bitmap == null){
System.err.println(" <== BitMap is Null ==> ");
return null;
}
w=bitmap.getWidth();
h=bitmap.getHeight();
for (int y = 0; y < h; ++y) {
for (int x = 0; x < w; ++x) {
total = 0;
for (int ky = -radius; ky <= radius; ++ky){
for (int kx = -radius; kx <= radius; ++kx){
// total += source(x + kx, y + ky);
int _tempx=x + kx;
int _tempy=y + ky;
if(_tempx < 0 )
_tempx=0;
if(_tempx > w )
_tempx = w - kx;
if(_tempy < 0 )
_tempy=0;
if(_tempy > h )
_tempy = h - ky;
total += bitmap.getPixel(_tempx, _tempy);
}
}
bitmap.setPixel(x, y,(int)( total / (radius * 2 + 1) ^ 2));
}
}
return bitmap;
}
但是当我尝试运行时,它的显示FATAL EXCEPTION
就像
03-18 04:41:54.296: E/AndroidRuntime(16347): FATAL EXCEPTION: main
03-18 04:41:54.296: E/AndroidRuntime(16347): java.lang.IllegalStateException
03-18 04:41:54.296: E/AndroidRuntime(16347): at android.graphics.Bitmap.setPixel(Bitmap.java:856)
03-18 04:41:54.296: E/AndroidRuntime(16347): at com.org.PhotoAppSimpleBlureActivity.getBlurBitmap(PhotoAppSimpleBlureActivity.java:81)
03-18 04:41:54.296: E/AndroidRuntime(16347): at com.org.PhotoAppSimpleBlureActivity.onClick(PhotoAppSimpleBlureActivity.java:93)
03-18 04:41:54.296: E/AndroidRuntime(16347): at android.view.View.performClick(View.java:2485)
03-18 04:41:54.296: E/AndroidRuntime(16347): at android.view.View$PerformClick.run(View.java:9080)
03-18 04:41:54.296: E/AndroidRuntime(16347): at android.os.Handler.handleCallback(Handler.java:587)
03-18 04:41:54.296: E/AndroidRuntime(16347): at android.os.Handler.dispatchMessage(Handler.java:92)
03-18 04:41:54.296: E/AndroidRuntime(16347): at android.os.Looper.loop(Looper.java:130)
03-18 04:41:54.296: E/AndroidRuntime(16347): at android.app.ActivityThread.main(ActivityThread.java:3683)
03-18 04:41:54.296: E/AndroidRuntime(16347): at java.lang.reflect.Method.invokeNative(Native Method)
03-18 04:41:54.296: E/AndroidRuntime(16347): at java.lang.reflect.Method.invoke(Method.java:507)
03-18 04:41:54.296: E/AndroidRuntime(16347): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:850)
03-18 04:41:54.296: E/AndroidRuntime(16347): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)
03-18 04:41:54.296: E/AndroidRuntime(16347): at dalvik.system.NativeStart.main(Native Method)
我不知道有什么问题或我想念什么,有人可以帮我解决这个问题吗?我参考了这个例子