在Android中加载图像效果需要很多时间?
我正在从事一个基于图像处理的项目,在该项目中,我正在编辑具有40多种不同效果的任何单个图像,如乌贼墨、浮雕、雕刻等。现在的问题是,每当我使用任何高分辨率高清图像时,至少需要15分钟才能加载该图像上的所有效果。如何减少这一时间,我不使用OpenCV API。下面是我的代码在Android中加载图像效果需要很多时间?,android,image-processing,Android,Image Processing,我正在从事一个基于图像处理的项目,在该项目中,我正在编辑具有40多种不同效果的任何单个图像,如乌贼墨、浮雕、雕刻等。现在的问题是,每当我使用任何高分辨率高清图像时,至少需要15分钟才能加载该图像上的所有效果。如何减少这一时间,我不使用OpenCV API。下面是我的代码 public class Image_add_effects extends Activity implements OnClickListener{ ImageView image; HorizontalScrollVi
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应用程序,因为我对图像处理还不熟悉,所以我也很难做到这一点。如何为图像添加效果?尝试使用。这就是如何使用的说明