首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何以编程方式将图像切片为4、9、16和25片

如何以编程方式将图像切片为4、9、16和25片
EN

Stack Overflow用户
提问于 2014-11-24 13:48:29
回答 2查看 839关注 0票数 0

我需要一点帮助,用程序将一张图片切成4、9、16和25片。

我会感谢任何帮助或想法。谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-24 13:55:09

我为此做了一个简单的应用程序。您可以从这里下载:

https://github.com/bpolat/Image-Slicer

您需要的代码是:

代码语言:javascript
复制
-(NSMutableArray *)getImagesFromImage:(UIImage *)image withRow:(NSInteger)rows   withColumn:   (NSInteger)columns
 {
NSMutableArray *images = [NSMutableArray array];
CGSize imageSize = image.size;
CGFloat xPos = 0.0, yPos = 0.0;
CGFloat width = imageSize.width/rows;
CGFloat height = imageSize.height/columns;
for (int y = 0; y < columns; y++) {
    xPos = 0.0;
    for (int x = 0; x < rows; x++) {

        CGRect rect = CGRectMake(xPos, yPos, width, height);
        CGImageRef cImage = CGImageCreateWithImageInRect([image CGImage],  rect);

        UIImage *dImage = [[UIImage alloc] initWithCGImage:cImage];
        UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(x*width, y*height, width, height)];
        [imageView setImage:dImage];
        [imageView.layer setBorderColor:[[UIColor blackColor] CGColor]];
        [imageView.layer setBorderWidth:1.0];
        [self.view addSubview:imageView];
        [images addObject:dImage];
        xPos += width;
    }
    yPos += height;
}
return images;
  }

用法:

代码语言:javascript
复制
[self getImagesFromImage:[UIImage imageNamed:@"1.png"] withRow:4 withColumn:4];

结果:

票数 2
EN

Stack Overflow用户

发布于 2014-11-24 13:57:17

以下是一个例子:

代码语言:javascript
复制
CGRect rect = CGRectMake(size.width / 4, size.height / 4 , 
(size.width / 2), (size.height / 2));
CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], rect);
UIImage *img = [UIImage imageWithCGImage:imageRef]; 
CGImageRelease(imageRef);

并查看以下链接:裁剪和调整图像 CGImage参考

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27106391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档