Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.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
使用NDK为Android编译Imagemagick_Android_Imagemagick - Fatal编程技术网

使用NDK为Android编译Imagemagick

使用NDK为Android编译Imagemagick,android,imagemagick,Android,Imagemagick,我是android新手,所以我有个问题要问。我想使用ImageMagick库在android中编辑图像,但我不想使用JMagick界面 以前有人在Android上导入过Imagemagick吗?如果是这样,你能给我一些提示吗?我想还没有人移植,但你可以自己移植。 您基本上需要获取源代码并创建一个android.mk文件 有几个链接帮助我构建了另一个库: 简短教程 我已经将其移植到android上,代码已经存在。您可以选择opencv库 使用这个,它是编译的。它不是awt;您只需要编译测试ap

我是android新手,所以我有个问题要问。我想使用
ImageMagick
库在android中编辑图像,但我不想使用
JMagick
界面


以前有人在Android上导入过Imagemagick吗?如果是这样,你能给我一些提示吗?

我想还没有人移植,但你可以自己移植。 您基本上需要获取源代码并创建一个android.mk文件

有几个链接帮助我构建了另一个库:

  • 简短教程

我已经将其移植到android上,代码已经存在。

您可以选择opencv库

使用这个,它是编译的。它不是awt;您只需要编译测试apk。以下是测试示例:

public class TesteNdkActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        try {
            ImageInfo i = new ImageInfo("/sdcard/DCIM/Camera/IMG_20120226_230240.jpg");
            MagickImage m = new MagickImage(i);

            int newHeight = (int) ((640/(float)m.getWidth()) * m.getHeight());
            m = m.scaleImage(640, newHeight);
            m = m.cropImage(new Rectangle((640-480)/2, 0, 480, 480));
            m = m.charcoalImage(0.5, 0.5);

            try {
                byte blob[] = m.imageToBlob(i);
                FileOutputStream fos = new FileOutputStream(new File("/sdcard/foto_teste.jpg"));
                fos.write(blob);
                fos.close();
            }
            catch (Exception e) {
                e.printStackTrace();
            }
        } 
        catch (MagickException e) {
            e.printStackTrace();
        }
    }
}
(文本应用程序将图片转换为blob) 我成功了,你也会成功。 享受它。

刚刚移植了它,
仍然是粗略的,但适用于大多数情况。

感谢您的代码。但是我很难在我的机器上编译你的代码。您是否可以解释如何使用代码?最新的github repo包含一个重建脚本。你可以看看。基本上,你修改了脚本中的SDK变量,一切都会正常工作。我下载了代码,但使用起来有问题。首先,我无法编译它,它抛出了一些freetype丢失错误,所以我得到了它。所以从一个旧的提交。现在我遇到了一些问题,因为Magick软件包中有很多java.awt引用,但我确信在android中awt是不可用的。你有android可执行二进制文件吗?如何用它将帧转换为gif?用这个来回答上述问题。如何将其添加到android studio 1.5中?问题是:OpenCV专注于计算机视觉,而ImageMagick用于更一般的图像处理。合并这两个库是有意义的,但是,对我来说,如果您有一个只有ImageMagick才能完成的任务,那么使用OpenCV而不是ImageMagick是没有意义的。