ImageMagick(MagickWand)ã§ã¢ãã¡ã¼ã·ã§ã³GIF(Animated GIF)ã使ãããµã³ãã«
åæ¥ç´¹ä»ãããImageMagickãiPhoneç¨ã«ãã«ãããçºã®ã·ã§ã«ã¹ã¯ãªãããã«ããiPhoneã§ ImageMagick ã使ããã¨ãå¯è½ã«æãã¾ãããããã§æ©éã以åãä½ã£ãäºãæãã¢ãã¡ã¼ã·ã§ã³GIF(Animated GIF)ã使ãããµã³ãã«ã® ImageMagick çããããã¨æãã¾ãã
ImageMagickãiPhoneç¨ã«ãã«ãããçºã®ã·ã§ã«ã¹ã¯ãªãã - å¼·ç«ã§é²ã
http://d.hatena.ne.jp/nakamura001/20100920/1284942306
å®ã¯ä»åã®ãã®ãã¿ã以åã«æ¸ãããiPhoneã¢ããªå ã§ã¢ãã¡ã¼ã·ã§ã³GIF(Animated GIF)ã使ãããµã³ãã«ãã«é ããã³ã¡ã³ããçºç«¯ã«ãªã£ã¦ãã¾ãã
iPhoneã¢ããªå ã§ã¢ãã¡ã¼ã·ã§ã³GIF(Animated GIF)ã使ãããµã³ãã« - å¼·ç«ã§é²ã
http://d.hatena.ne.jp/nakamura001/20100121/1264070746
ãã®ã¨ã³ããªã¼ã®ã³ã¡ã³ãã«ã¦iOS 4.0ã§ãã«ãåºæ¥ãªãã¨ã®æ å ±ãé ãã¾ãããèªåã§ããã«ãããæã確ãã«ãã«ãã«å¤±æãã¾ããããã®æã«ä½¿ã£ãæ¹æ³ã§ã¯ MacPorts ã§ã¤ã³ã¹ãã¼ã«ãã libpng ãªã©ã使ã£ã¦ãã¾ããã
æ¬æ¥ã§ããã°MacPortsã§ã¤ã³ã¹ãã¼ã«ãããã®ã¯Macç°å¢ã§ä½¿ãçºã®ãã®ãªã®ã§iPhoneç¨ã¨ãã¦ãåä½ãã¦ããã®ã¯ãªãã±ã¿ãããªãã®ã§ããããã®æ§ãªä»æ§å¤æ´ãå ¥ã£ã¦ãã¾ãã®ããããããªãã§ãã
ã¨ãããã¨ã§ libpng ãªã©ãã½ã¼ã¹ãããã«ãããããã¨èª¿æ»ãããæããã¾ãã¾ ImageMagick ãiPhoneç¨ã«ãã«ããã¦ããæ¹ãè¦ã¤ããã®ã§ãããã ImageMagick ãæããªããã£ã¡ã§è¯ãããã¨æã£ãããã§ãã
ä½ãæ¹
ImageMagick ã¯ä½¿ã£ãäºãæãã®ã§ãã ImageMagick ã®Cè¨èªåãã®å®è£ 㯠MagickWand API 㨠MagickCore API ã¨ããå®è£ ã«ãªã£ã¦ãããImageMagickã®ã³ãã³ãã弿°ã«æååã§æ¸¡ãã°åºæ¥ãã®ããªï¼ãã¨è»½ãèãã¦ããèªåã®äºæ³ã大ããè£åããã¾ããw
ããããç¡ãã®ã§è³æã¯ç¡ããã¨èª¿ã¹ãã®ã§ããå ¬å¼ã®ãªãã¡ã¬ã³ã¹ã¯æ å ±ãå°ãªããä¸éãå®è£ ãããããªãµã³ãã«ã¯ç¡ãã®ãã¨æ¢ããæãã£ã¨ãã¡ãã®ãã¼ã¸ãè¦ã¤ãã¾ããã
[magick-users] Problem Jpeg Images to Gif Animation File
http://studio.imagemagick.org/pipermail/magick-users/2007-January/018986.html
ãã®ãã¼ã¸ãåèã«ãããªæãã«å®è£ ãã¾ããã MagickWand ã®APIãå¼ã¶åã« MagickWandGenesis(); ãã³ã¼ã«ãã MagickWand APIããã使ããªããªã£ãæç¹ã§ MagickWandTerminus() ãå¼ã¶ã¿ããã§ãã
主ãªå¦çã¨ãã¦ã¯ MagickReadImage() ã§ãã¡ã¤ã«ãããã¼ã¿ãèªã¿è¾¼ã¿ã MagickSetImageDelay() ã§è¡¨ç¤ºééãè¨å®ã MagickAddImage() ã§ãã¼ã¹ã¨ãªãç»åã«èªã¿è¾¼ãã ç»åã追å ã¨ããæµãã§ãã
(2009/10/02 夿´)ã¢ãã¡ã¼ã·ã§ã³ã®è¡¨ç¤ºãããé çªãæ£ãããªãã£ãã®ãä¿®æ£
char *flist[] = {"img01.jpg", "img05.jpg", "img04.jpg", "img03.jpg", "img02.jpg", NULL}; MagickWand *mw = NULL,*rw; char **ptr; MagickWandGenesis(); mw = NewMagickWand(); for(ptr = flist; *ptr; ptr++) { NSString *inputFile = [NSString stringWithFormat:@"%@/%s" , [[NSBundle mainBundle] resourcePath], *ptr]; NSLog(@"å ¥åãã¡ã¤ã«ãã¹ : %@", inputFile); rw = NewMagickWand(); MagickReadImage(rw, [inputFile UTF8String]); MagickSetImageDelay(rw, 60); MagickAddImage(mw, rw); DestroyMagickWand(rw); } // GIFå½¢å¼ã§åºå NSString *outputPath = [NSString stringWithFormat:@"%@/test.gif" , [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]]; NSLog(@"åºåãã¡ã¤ã«ãã¹ : %@", outputPath); mw = MagickCoalesceImages(mw); MagickBooleanType status = MagickWriteImages(mw, [outputPath UTF8String], MagickTrue); NSString *msg; if (status == MagickTrue) { msg = [NSString stringWithString:@"ãã¡ã¤ã«ã®ä½æã«æåãã¾ãã"]; } else { msg = [NSString stringWithString:@"ãã¡ã¤ã«ã®ä½æã«å¤±æãã¾ãã"]; } UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:msg delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil]; [alert show]; [alert release]; mw = DestroyMagickWand(mw); MagickWandTerminus();
追å ãããã¡ã¤ã«ã®ä¸¦ã³ã¯æåã以ä¸ã®æ§ã«è¨è¿°ãã¦ãã¾ããã
char *flist[] = {"img01.jpg", "img02.jpg", "img03.jpg", NULL};
ããããããã§ã¯ img01.jpg â img03.jpg â img02.jpg ã¨ããé çªã§ã¢ãã¡ã¼ã·ã§ã³ãã¦ãã¾ããã
â»ã³ã¡ã³ãæ¬ã«ã¦pwwããã«æãã¦é ãã¾ããããããã¨ããããã¾ãã
è²ã ã¨ãã¹ãããçµæã以ä¸ã®æ§ãªé çªã§ãã¡ã¤ã«ã追å ããã¨æ£ããé çªã§åä½ããæ§ã§ãã
char *flist[] = {"img01.jpg", "img05.jpg", "img04.jpg", "img03.jpg", "img02.jpg", NULL};
ç»åã¯1æç®ãç¡ãå ´åã¯ãã®ã¾ã¾ä¸æç®ã®ä½ç½®ã«è¿½å ããããã以éã¯2æç®ã®ä½ç½®ã«è¿½å (æ¿å
¥)ãããæ§ã§ãã
ãã®ä»ã«ããã¸ã§ã¯ãå´ã«ãè²ã ã¨è¨å®ãå¿ è¦ã§ããã
1. ImageMagick ã©ã¤ãã©ãªã®è¿½å
ã¾ã㯠ImageMagick ã®ã©ã¤ãã©ãªãããã¸ã§ã¯ãã«è¿½å ãèªåã¯ååã®ã¨ã³ããªã¼ã§ç´¹ä»ãããã¡ãã®ãã¼ã¸ã«æããtest project ã® IM ãã£ã¬ã¯ããªã丸ãã¨ã³ãã¼ãã使ãã¾ããã
ImageMagick for iPhone via SnowLeopard
http://www.cloudgoessocial.net/2010/02/10/imagemagick-for-iphone-via-snowleopard/
2. æ¤ç´¢ãã¹ã®è¨å®
ãã«ãã®è¨å®ã«ã¦ããããæ¤ç´¢ãã¹ãã¨ãã©ã¤ãã©ãªæ¤ç´¢ãã¹ãã« "$(SRCROOT)/" ã追å ãããå帰çãã«ãã§ãã¯ãä»ããã
3. ãªã³ã«ãã©ã°ã®è¨å®
ãä»ã®ãªã³ã«ãã©ã°ãã«ä»¥ä¸ã®ãã®ãè¨å®
-lMagickCore -lMagickWand -lbz2 -lz -ljpeg -lpng
ãµã³ãã«ã¯こちらããDLåºæ¥ã¾ãã
以åç´¹ä»ããiTunesã使ã£ããã¡ã¤ã«å ±ææ©è½ãå®è£ ãã¦æãã®ã§iPhoneã§ä½æããGIFãã¡ã¤ã«ã¯iTunesã使ã£ã¦PCã«ä¿ååºæ¥ã¾ããæ¯éãPCã«ä¿åãã¦ãã©ã¦ã¶ã«ãã©ãã¯ãã¦ã¡ããã¨ã¢ãã¡GIFã«æã£ã¦ããã確èªãã¦ã¿ã¦ä¸ããã
iTunesã使ã£ããã¡ã¤ã«å ±ææ©è½ãä½¿ãæ¹æ³ - å¼·ç«ã§é²ã
http://d.hatena.ne.jp/nakamura001/20100902/1283442536
ãªãããã¡ãã®ãµã³ãã«ã§ã¯æé©åã«ã¤ãã¦ã¯ä¸åèæ ®ãã¦ãã¾ããã
å®éã«èªåã®ã¢ããªã§ä½¿ãå ´åã«ã¯ä»¥ä¸ã®URLã§è¡ã£ã¦ããæ§ãªæé©åãè¡ãã¨ããè¯ããã®ã¨ãªãã§ãããã
â»ãã¡ãã¯ã³ãã³ãã©ã¤ã³ç¨ã®ã³ãã³ãã§ã¢ãã¡GIFã使ããæã®æé©åæ¹æ³ã®è§£èª¬ãªã®ã§å®éã®ããã°ã©ã ã§ã¯ MagickWand ã®é¢æ°ã«ç½®ãæãèããå¿
è¦ãæãã¾ãã
Animation Optimization -- IM v6 Examples
http://www.imagemagick.org/Usage/anim_opt/