Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中加载图像效果需要很多时间?_Android_Image Processing - Fatal编程技术网

在Android中加载图像效果需要很多时间?

在Android中加载图像效果需要很多时间?,android,image-processing,Android,Image Processing,我正在从事一个基于图像处理的项目,在该项目中,我正在编辑具有40多种不同效果的任何单个图像,如乌贼墨、浮雕、雕刻等。现在的问题是,每当我使用任何高分辨率高清图像时,至少需要15分钟才能加载该图像上的所有效果。如何减少这一时间,我不使用OpenCV API。下面是我的代码 public class Image_add_effects extends Activity implements OnClickListener{ ImageView image; HorizontalScrollVi

我正在从事一个基于图像处理的项目,在该项目中,我正在编辑具有40多种不同效果的任何单个图像,如乌贼墨、浮雕、雕刻等。现在的问题是,每当我使用任何高分辨率高清图像时,至少需要15分钟才能加载该图像上的所有效果。如何减少这一时间,我不使用OpenCV API。下面是我的代码

   public class Image_add_effects extends Activity implements OnClickListener{
ImageView image;
HorizontalScrollView view;

ImageView mSwitcher;
ArrayList<Bitmap>array_image;
Bitmap image_compress;
 BitmapDrawable drawable,drawable_image;
 Bitmap changed_image;
 Gallery g;
 ImageView img1,img2,img3,img4,img5;
 Bitmap bit1,bit2,bit3,bit4,bit5;


@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.add_effects);
    setBodyUi();
    System.loadLibrary("PhotoProcessing");

     changed_image=Image_effects.image_change;
     ByteArrayOutputStream stream = new ByteArrayOutputStream();
     //System.out.println("yourSelectedImage"+yourSelectedImage);
     changed_image.compress(Bitmap.CompressFormat.JPEG, 100, stream); 

    new SendImage().execute();
}

public class SendImage extends AsyncTask<String, Process, String> {

    ProgressDialog pb;
    String the_string_response;
    String image_str;

    @Override
    public void onPreExecute() {

        pb = ProgressDialog
                .show(Image_add_effects.this, null, "Processing....");


    }

    @Override
    protected String doInBackground(String... params) {




        bit1=(Effects_change.doInvert(image_compress));
        bit2=(Effects_change.doHighlightImage(image_compress));
        bit3=(Effects_change.applyGaussianBlur(image_compress));
        bit4=(Effects_change.sharpen((image_compress),20));
        bit5=(Effects_change.applyMeanRemoval(image_compress));
        bit6=(Effects_change.smooth((image_compress),8));
        bit7=(Effects_change.emboss(image_compress));
        bit8=(Effects_change.engrave(image_compress));
        bit9=(Effects_change.applyHueFilter((image_compress),9));

        bit10=(Effects_change.doGreyscale(image_compress));
        bit11=(Effects_change.doGamma((image_compress),0.6, 0.6, 0.6));
        bit12=(Effects_change.doGamma((image_compress),1.8, 1.8, 1.8));
        bit13=(Effects_change.doColorFilter((image_compress), 1.0, 0, 0));
        bit14=(Effects_change.doColorFilter((image_compress), 0, 1, 0));
        bit15=(Effects_change.doColorFilter((image_compress), 0, 0, 1));
        bit16=(Effects_change.doColorFilter((image_compress), 0.5, 0.5, 0.5));
        bit17=(Effects_change.doColorFilter((image_compress), 1.5, 1.5, 1.5));
        bit18=(Effects_change.createSepiaToningEffect((image_compress),100, 1.5, 0.6, 0.12));
        bit19=(Effects_change.createSepiaToningEffect((image_compress),200, 0.88, 2.45, 1.43));
        bit20=(Effects_change.createSepiaToningEffect((image_compress),255, 1.2, 0.87, 2.1));

        return null;
    }

    @Override
    public void onPostExecute(String result) {
        super.onPostExecute(result);

        img1.setImageBitmap(bit1);
        img2.setImageBitmap(bit2);
        img3.setImageBitmap(bit3);
        img4.setImageBitmap(bit4);
        img5.setImageBitmap(bit5);

        pb.dismiss();
    }

}
public class Image\u add\u effects扩展活动实现OnClickListener{
图像视图图像;
水平滚动视图;
图像视图开关;
ArrayListarray_图像;
位图图像压缩;
位图可绘制,可绘制的图像;
位图图像;
g廊;
ImageView img1、img2、img3、img4、img5;
位图位1、位2、位3、位4、位5;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
requestWindowFeature(窗口。功能\u无\u标题);
setContentView(R.layout.add_效果);
setBodyUi();
系统加载库(“照片处理”);
更改的图像=图像效果。图像更改;
ByteArrayOutputStream=新建ByteArrayOutputStream();
//System.out.println(“yourSelectedImage”+yourSelectedImage);
更改了_image.compress(位图.CompressFormat.JPEG,100,流);
新建SendImage().execute();
}
公共类SendImage扩展异步任务{
ProgressDialog pb;
字符串\u字符串\u响应;
字符串图像;
@凌驾
公共无效onPreExecute(){
pb=进程对话框
.show(Image\u add\u effects.this,null,“处理…”);
}
@凌驾
受保护的字符串doInBackground(字符串…参数){
bit1=(效果更改.doInvert(图像压缩));
bit2=(效果改变.doHighlightImage(图像压缩));
bit3=(效果变化。applyGaussianBlur(图像压缩));
bit4=(效果改变。锐化((图像压缩),20));
bit5=(效果改变.应用程序删除(图像压缩));
bit6=(效果变化平滑((图像压缩),8));
bit7=(效果变化.浮雕(图像压缩));
bit8=(效果改变雕刻(图像压缩));
bit9=(Effects_change.applyHueFilter((image_compress),9));
bit10=(效果变化.doGreyscale(图像压缩));
比特11=(效果变化doGamma((图像压缩),0.6,0.6,0.6);
比特12=(效果变化doGamma((图像压缩),1.8,1.8,1.8);
bit13=(Effects_change.doColorFilter((图像压缩),1.0,0,0));
bit14=(Effects_change.doColorFilter((image_compress),0,1,0));
bit15=(Effects_change.doColorFilter((图像压缩),0,0,1));
bit16=(Effects_change.doColorFilter((图像压缩),0.5,0.5,0.5));
bit17=(Effects_change.doColorFilter((image_compress),1.5,1.5,1.5));
比特18=(Effects_change.createSepiaToningEffect((图像压缩),100,1.5,0.6,0.12));
比特19=(Effects_change.createSepiaToningEffect((图像压缩),200,0.88,2.45,1.43);
比特20=(Effects_change.createSepiaToningEffect((图像压缩),255,1.2,0.87,2.1));
返回null;
}
@凌驾
public void onPostExecute(字符串结果){
super.onPostExecute(结果);
img1.setImageBitmap(位1);
img2.setImageBitmap(位2);
img3.setImageBitmap(位3);
img4.setImageBitmap(位4);
img5.setImageBitmap(位5);
pb.dispose();
}
}
我将此链接用于上述代码:

我正在制作一个Android应用程序,因为我对图像处理还不熟悉,所以我也很难做到这一点。如何为图像添加效果?

尝试使用。这就是如何使用的说明