分享

ImageMagick, Xcode4, iOS4.3

 ccccshq 2014-11-19

Just a small update on the ImageMagick front! First of all, a reminder. All my ImageMagick related efforts (compiler script + test project) can be found over at github.

The latest ImageMagick, at the time of writing is version 6.6.8-5. I’ve bumped the versions of the delegate libraries, as well:

  • jpeg: 8-c
  • png: 1.4.5
  • tiff: 3.9.4

Finally I’ve got my hands on the latest Xcode4 and on the latest iOS4.3 SDK. I’ve updated the IM_Test Xcode project on the same git repository of the compiler script :)

You can always grab the pre-compiled versions from ImageMagick’s FTP stite

I hope everyone is happy about the update, if you are let me know what you’re up to with ImageMagick on the iPhone and if you feel like don’t hesitate in donating (link on the right), as you can see this blog runs ads-free and any bit helps!

Cheers!

~C

Category: Code

Tagged: , ,

67 Responses

  1. chiranjibi says:

    Hi! Thanks for all of your work. I am running into trouble like i am trying to apply unsharp mask filter on image in iPad but it is not working. I tried Edge Detection also and it is working fine but USM is not.

    Please guide me….

  2. [...] for me, Claudio Marforio did the work to build ImageMagick for iOS armv6 and armv7. Unfortunately, I need libraries that work with armv7 and armv7s for the newer iOS devices. With [...]

  3. Mario says:

    Hi C,

    Could you tell me if IM for IOS supports DNG to other format conversion?

    Thanks and great job!

  4. Bruce Cichowlas says:

    Hi! Thanks for all of your work. I am running into trouble linking with the current Xcode (4.5.1). I get the message below. Any ideas, anyone?

    ld: file is universal (2 slices) but does not contain a(n) armv7s slice: /Users/bcichowlas/Dropbox/git/e2/e2/libtiff.a for architecture armv7s

  5. Floix says:

    The current version is only compiled for armv7 architecture. Could u provide a binary that also runs on armv6?

  6. Floix says:

    Thanks for the work on ImageMagick for iOS. I’m facing a problem which i cannot solve right now. I’d like to add a small text to my image, using Arial als a font. Unfortunatly I receive the following error: delegate library support not built-in `/usr/local/share/ghostscript/fonts/n019003l.pfb’ (Freetype)

    I compiled freetype2 for iOS and added it to my project, but still there seems to be something i’m missing. Can you help me out here?

  7. Keyur says:

    I have some errors that I can’t seem to resolve. Any ideas of what might be going on?

    Code:

    (LINE 9) CGImageRef ref = createStandardImage(img.CGImage);
    (LINE 10) UIImage * image = [self createPosterizeImage:ref];

    Errors:

    (LINE 9) Implicit declaration of function ‘createStandardImage’ is invalid in C99

    (LINE 9) Incompatible integer to pointer conversion initializing ‘CGImageRef’ (aka ‘struct CGImage *’) with an expression of type ‘int’;

    (LINE 10) No visible @interface for ‘ViewController’ declares the selector ‘createPosterizeImage:’

  8. Salil says:

    Does it have Ghostscript compiled in it as well? I can use GS API with it?

  9. mga says:

    I couldn’t make it compile on armv6 for the current latest IM (6.7.6-0). The error I received was:

    cp: /path/to/cross_compile/tmp_target/imagemagick/lib/libMagickCore.a: No such file or directory

    and similar errors like that so no ImageMagick got created. Delegates did get created, though.

    I (think I) managed to make it work on armv6 for 6.6.8-10 but with the latest JPG, PNG, TIFF delegates (armv7 works fine, waiting to test in my 3GS with OS 3.1.3).

    OS: 10.6.8
    XCode: 4.2
    iOS SDK: 5.0

    Thanks a lot!

  10. dinesh says:

    Hi,

    I am using libtiff to create tiff images. I am stuck how to convert TIFF data type to nsdata. I would really appreciate you can help me with this.

    Thanks

  11. eviljack says:

    Cloud,

    Thanks for all the work. I was wondering if you knew of a way to change the temp file directory.

    http://www./discourse-server/viewtopic.php?f=3&t=13574&start=15

    ImageMagick generates a bunch of temp files in my app and it is getting a deny-file-write error. The program still finishes but I think it’s causing me some other problems with my app.
    I’ve tried doing a “putenv” but it seems IM doesn’t pick up on that. And I can’t put it in the configure.xml because I don’t know until runtime the actual path of the user’s directory I’m trying to write to.

  12. dinesh says:

    Hi,

    I am trying to using Image magick in my ipad project I could not find documentation of the classes. Can you please provide me any source for that.

    Dinesh

  13. Dave says:

    Hey! I can’t thank you enough for making this available.

    I am getting memory leak according to Instruments. It’s in AcquireMagickMemory. Any thoughts?

    Thanks.

  14. Steve says:

    Hey thanks a lot for the effort here. Getting a couple fatal errors when trying to deploy to an iPhone 4 with iOS 5.

    Undefined symbols for architecture armv7:
    “_j0″, referenced from:
    _FxEvaluateSubexpression in libMagickCore.a(magick_libMagickCore_la-fx.o)
    “_j1″, referenced from:
    _FxEvaluateSubexpression in libMagickCore.a(magick_libMagickCore_la-fx.o)
    ld: symbol(s) not found for architecture armv7
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    Runs great in the simulator, of course. Any tips?

  15. Kiran says:

    Is there any support to open JPEG 2000 images with this iOS libraries, I tried to do so but it failed saying “No delegate decoder found for this format.”

  16. Andrew says:

    Hey Cloud thanks for your great work. I have compiled the libraries, but the size of *.a file is too large. What can I do for reducing the size? Compiled the libraries only for the arm arch When I distribute my app to app store?

  17. Lewis Denny says:

    Hey cloud :)

    This is exactly what Iv been looking for! I’m glad a mate tipped me off about using this, but how come you don’t distribute this in .deb format? Thanks for your time :)

  18. shawn says:

    Hey Cloud thanks for your work compiling ImageMagick for IOS and offering a sample project, it helps so much!

    I am trying to port a C++ program that uses the Magick++ library to iOS. I have tried importing the libMagick++.a into your xcode project and the source CPP files but I can’t get it to compile. I get an error that says the libMagick++.a was built for an unsupported file format which is not the architecture being linked (i386). So I know that I need to recompile the Magick++ library for i386, but even if I do this would it work? Or would it be better to rewrite the code to use the MagickCore or MagicWand commands instead?

    Thanks for your time!

    • Cloud says:

      It will work, you need to recompile it for: armv6, armv7 (for iPhone binaries) and i386x/x86_64 (should be the first, for the Simulator). You can reuse my script to understand how everything works!
      ~C

      • shawn says:

        THANKS! I got it compiled as Universal and into a new Xcode project. Now I am trying to pass an image to it and I keep getting “Exception when loading image: Magick: NoDecodeDelegateForThisImageFormat” even though I can get the same image to read from compiling the program in the console. I am going to try to send raw pixel data instead and see if that works. Its a PNG image.

        Thanks again.

      • Cloud says:

        You need to compile it with some delegates for it to read PNG, JPEG, …

  19. eric says:

    Hey there, considering you’re compiling the libraries, would it be possible to get CLI binaries for iOS? Not for use with developing applications, for use with command line stuff on jailbroken devices. Please? The version currently on Cydia is too old.

  20. [...] have imagemagick running on the iPhone and can apply “MagickWand” methods with no problem. My issue is that I don’t [...]

  21. Wei says:

    Hi,

    many thanks for your efforts on doing this

    when I use this library,
    I got some strange results,

    I edit some code in the example code,
    I need two image to composite,

    when I use the jpeg compression one,
    it works well
    but if I don’t use the compression one
    it doesn’t work
    status = MagickTransformImageColorspace(magick_wand, GRAYColorspace);

    status = MagickNegateImage(magick_wand,MagickTrue);

    MagickAdaptiveThresholdImage(magick_wand, 5 ,5, 10);

    status = MagickCompositeImage(ori_magick_wand , magick_wand , CopyOpacityCompositeOp ,0,0);

    the first three call work well
    but the last one doesn’t work if I don’t read picture like MagickReadImageBlob in jpeg compression

    (in the without compression or new Method all dont work)

    because the compression is too slow
    I have to use other way

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多