objective-c – 使用OS X App捆绑ImageMagick库?

objective-c – 使用OS X App捆绑ImageMagick库?,第1张

概述我正在开发一个OS X应用程序,并希望使用 ImageMagick进行一些图像处理.我注意到CLI ImageMagick实用程序需要一些环境变量才能工作.是否可以将ImageMagick工具套件与我的应用程序捆绑在一起并在我的代码中使用它们? 所以这是我的解决方案: 我将OS X binary版本与我的项目捆绑在一起,并使用NSTask来调用二进制文件.您需要为NSTask指定“MAGICK_H @H_404_0@ @H_404_0@ 我正在开发一个OS X应用程序,并希望使用 ImageMagick进行一些图像处理.我注意到Cli ImageMagick实用程序需要一些环境变量才能工作.是否可以将ImageMagick工具套件与我的应用程序捆绑在一起并在我的代码中使用它们?解决方法 所以这是我的解决方案:

我将OS X binary版本与我的项目捆绑在一起,并使用NSTask来调用二进制文件.您需要为NSTask指定“MAGICK_HOME”和“DYLD_liBRARY_PATH”环境变量才能正常工作.这是我正在使用的片段.

请注意,此示例已硬编码为使用“复合”命令…并使用硬编码参数,但您可以将其更改为您喜欢的任何内容…它只是用作概念证明.

-(ID)init{    if ([super init])    {        Nsstring* bundlePath = [[NSBundle mainBundle] bundlePath];        Nsstring* imageMagickPath = [bundlePath stringByAppendingPathComponent:@"/Contents/Resources/ImageMagick"];        Nsstring* imageMagicklibraryPath = [imageMagickPath stringByAppendingPathComponent:@"/lib"];        MAGICK_HOME = imageMagickPath;        DYLD_liBRARY_PATH = imageMagicklibraryPath;    }    return self;}-(voID)composite{    NSTask *task = [[NSTask alloc] init];    // the ImageMagick library needs these two environment variables.    NSMutableDictionary* environment = [[NSMutableDictionary alloc] init];    [environment setValue:MAGICK_HOME forKey:@"MAGICK_HOME"];    [environment setValue:DYLD_liBRARY_PATH forKey:@"DYLD_liBRARY_PATH"];    // helper function from    // http://www.karelia.com/cocoa_legacy/Foundation_CategorIEs/NSfileManager__Get_.m    Nsstring* pwd = [Helpers pathFromUserlibraryPath:@"MyApp"];    // executable binary path    Nsstring* exe = [MAGICK_HOME stringByAppendingPathComponent:@"/bin/composite"];    [task setEnvironment:environment];    [task setCurrentDirectoryPath:pwd]; // pwd    [task setLaunchPath:exe]; // the path to composite binary    // these are just example arguments    [task setArguments:[NSArray arrayWithObjects: @"-gravity",@"center",@"stupID hat.png",@"IDR663.gif",@"bla.png",nil]];    [task launch];    [task waitUntilExit];}

此解决方案将整个库的大部分与您的版本捆绑在一起(目前为37MB),因此对于某些解决方案可能不太理想,但它正在运行:-)

@H_404_0@ 总结

以上是内存溢出为你收集整理的objective-c – 使用OS X App捆绑ImageMagick库?全部内容,希望文章能够帮你解决objective-c – 使用OS X App捆绑ImageMagick库?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1021549.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存