gpt4 book ai didi

ios - 将 ImageMagick 命令翻译成 iOS

转载 作者:行者123 更新时间:2023-11-29 03:02:55 25 4
gpt4 key购买 nike

我正在尝试将以下 ImageMagick 命令转换为 objective-c:

convert photo.png -posterize 6 photo2.png

我基本上只是尝试获取一些 UIImage 并对其应用简单的分离效果。我写了下面的代码,它对图像没有任何影响。它不会抛出任何异常或失败。我有一个失败,我要么搞砸了命令参数,要么搞砸了图像输入/输出。有人对如何解决此问题有任何建议吗?

MagickWandGenesis();
MagickWand *wand = NewMagickWand();
NSData *data = UIImagePNGRepresentation(self.originalImage);
MagickReadImageBlob(wand, [data bytes], [data length]);

int arg_count = 2;
char *args[] = { "-posterize", "6", NULL};

ImageInfo *image_info = AcquireImageInfo();
ExceptionInfo *exception = AcquireExceptionInfo();

MagickBooleanType status = ConvertImageCommand(image_info, arg_count, args, NULL, exception);

if (exception->severity != UndefinedException)
{
status = MagickTrue;
CatchException(exception);
}

if (status == MagickFalse)
{
NSLog(@"FAIL");
}

self.imageView.image = self.originalImage;

image_info=DestroyImageInfo(image_info);
exception=DestroyExceptionInfo(exception);
DestroyMagickWand(wand);
MagickWandTerminus();

最佳答案

我相信您正在寻找 Imagemagick 的 MagickPosterizeImage .

MagickWandGenesis();
MagickWand *wand = NewMagickWand();
NSData *data = UIImagePNGRepresentation(self.originalImage);
MagickReadImageBlob(wand, [data bytes], [data length]);

MagickBooleanType = status;

status = MagickPosterizeImage(wand,6,MagickFalse);
if (status == MagickFalse)
{
NSLog(@"FAIL");
}

// Convert wand back to UIImage
unsigned char * c_blob;
size_t data_length;
c_blob = MagickGetImageBlob(wand,&data_length);
data = [NSData dataWithBytes:c_blob length:data_length];
self.imageView.image = [UIImage imageWithData:data];

DestroyMagickWand(wand);
MagickWandTerminus();

MagickPosterizeImage

还有 MagickOrderedPosterizeImage & MagickOrderedPosterizeImageChannel微调抖动阈值和目标颜色 channel 。

MagickOrderedPosterizeImageChannel

关于ios - 将 ImageMagick 命令翻译成 iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23121745/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com