结合 UIImageViews 产生 0 字节的空图像

Posted

技术标签:

【中文标题】结合 UIImageViews 产生 0 字节的空图像【英文标题】:Combining UIImageViews yields empty image with 0 bytes 【发布时间】:2014-01-21 04:12:58 【问题描述】:

我正在尝试将两个UIImageViews 合并为combinedView。我遇到的问题是,在我将self.firstImageViewself.secondImageView 作为子视图添加到我的combinedView 后,当我检查combinedView.image 的字节大小时得到的输出为0。我需要combinedView.image最终在 JEPGRepresentation 中传递到我的后端,所以我不确定我还能如何将视图组合在一起,或者我目前做错了什么。

感谢您的帮助!

UIImageView *combinedView = [[UIImageView alloc] init];
[combinedView addSubview:self.firstImageView];
[combinedView sendSubviewToBack:self.firstImageView];
[combinedView addSubview:self.secondImageView];
[combinedView bringSubviewToFront:self.secondImageView];

NSData *firstPicData = UIImageJPEGRepresentation(self.firstImageView.image, 1.0);
NSLog(@"Size of first:%d",[firstPicData length]); //outputs a non-zero number

NSData *secondPicData = UIImageJPEGRepresentation(self.secondImageView.image, 1.0);
NSLog(@"Size of second:%d",[secondPicData length]); //also outputs a non-zero number

NSData *combinedPicData = UIImageJPEGRepresentation(combinedView.image, 1.0);
NSLog(@"Size of combined:%d",[combinedPicData length]); //! outputs 0 bytes

【问题讨论】:

【参考方案1】:

您正在添加 self.firstImageView 和 self.secondImageView 作为组合视图的子视图,而且您没有将任何图像分配给组合视图。所以 [combinedPicData 长度] 总是只有 0。

请参阅以下链接以合并两个图像。

ios - Merging two images of different size

blend two uiimages based on alpha/transparency of top image

Merge Two Image on to one Image programmatically in iphone

How to merge two half images in ios app?

【讨论】:

谢谢,第一个链接特别有用。

以上是关于结合 UIImageViews 产生 0 字节的空图像的主要内容,如果未能解决你的问题,请参考以下文章

程序集中的空标签占用内存而没有存储指令?

使用校验和将字节数组转换为字符串。在 python 中重新迭代时获取额外的空字节

为啥drawRect的空实现:会对动画期间的性能产生不利影响

使用 AVAudioRecorder 录制语音后的空文件

逆向程序分析:C++的一个空类,为什么在内存中占1字节

由 JPA 多对多产生的空连接表