Tag: uiimage

如何释放不再使用的UIImage的内存

我正试图将一些较小的图像合并成一个较大的图像。 该应用程序崩溃,因为它的内存不足,但我不知道如何释放内存后,它使用,所以它一直build立直到应用程序崩溃。 addImageToImage和resizeImage例程看起来是导致崩溃,因为我不能释放内存后,不再需要它的内存。 我在这个项目中使用自动引用计数。 我已经尝试将图像设置为零,但这并不能阻止崩溃。 testImages是在一个从主ViewController调用的类中,而addImageToImage和resizeImage在另一个名为ImageUtils的类中。 有人可以看看这个代码,并向我解释如何正确释放这两个例程分配的内存。 由于项目使用ARC并将它们设置为零,所以我无法在图像上调用发布。 + (void)testImages { const int IMAGE_WIDTH = 394; const int IMAGE_HEIGHT = 150; const int PAGE_WIDTH = 1275; const int PAGE_HEIGHT = 1650; const int COLUMN_WIDTH = 30; const int ROW_OFFSET = 75; CGSize imageSize = CGSizeMake(PAGE_WIDTH, PAGE_HEIGHT); UIGraphicsBeginImageContextWithOptions(imageSize, YES, 0); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextFillRect(context, CGRectMake(0, […]

内存泄漏 – UIImagePNGRepresentation

我想从UIImagePicker复制到文档目录的图像。 我正在使用@"UIImagePickerControllerOriginalImage"键从UIImagePickerDelegate的字典中获取原始图像。 我正在使用UIImagePNGRepresentation将图像写入文件。 当我添加(重复过程)图像的高分辨率(图像大小约20 MB),我正面临着内存问题。 我分析并使用了Xcode的内存泄漏function,并放大了下面一段代码,这是泄漏的责任。 @autoreleasepool { imagesData = UIImagePNGRepresentation(images); [imagesData writeToFile:name atomically:NO]; imagesData = nil; //[UIImageJPEGRepresentation(images, 1.0) writeToFile:name atomically:YES]; } 我在这里看到了很多关于UIImagePNGRepresentation引起的内存泄漏的问题。 但是我还没有find妥善解决我的问题。 需要帮忙。

在xib中分配的图像是否caching?

如果我将一个图像分配给xib中的UIImage视图,该图像是否caching,以便如果我使用UIImage访问图像imageNamed:我正在获取caching的图像数据? 我正在使用iOS 5.1

CIFilter已经改变了UIImage长宽比 – SWIFT

我在我的iOS应用程序中实现了一个CIFilter来profileImages。 我已经添加了方向来防止像素化,但是我正在忍受长宽比 “ScaleAspectFill”不适用于图像。 在颜色相同的图像有完美的长宽比…即,当我只有: self.p1ProfilePic.image = p1Img 我已经为Storyboard中的configuration文件图像指定了确切的高度和宽度。 我已经尝试添加.contentMode编程方式为.ScaleAspectFill但没有任何效果。 我在这里错过了什么? 的CGRect? let originalImageP1 = CIImage(image: p1Img!) let filter = CIFilter(name: "CIPhotoEffectTonal") filter!.setDefaults() filter!.setValue(originalImageP1, forKey: kCIInputImageKey) let outputImage = filter!.outputImage self.p1ProfilePic.image = UIImage(CIImage: outputImage!, scale: UIScreen.mainScreen().scale, orientation: .Up)

为UIImage制作圆angular

在我的iPhone应用程序中,我必须显示一个UIImage,其四个angular都弯曲,以便在屏幕上看起来很好。 但是,我的图像是一个矩形的图像,不能在图像级别更改,因为它来自第三方。 用UIImageView我可以设置框架。 使用代码,我怎样才能修改我的UIImage有圆angular? 任何线索?

使用UIActivityViewController发送图像时,Gmail扩展会崩溃

我使用UIActivityViewController共享多个图像,但是当我在列表中select一个Gmail时,会打开它,然后看到附加的文件,然后Gmail扩展程序崩溃。 下一次,我select它甚至不会打开。 但一切工作正常与UIActivityViewController列表中的邮件应用程序或其他应用程序。 NSArray *scans = self.document.scans; NSMutableArray *imagesData = [NSMutableArray arrayWithCapacity:[scans count]]; for (DScan *scan in scans) { UIImage *image = [scan fullImageWithError:nil]; [imagesData addObject:UIImageJPEGRepresentation(image, 0.6)]; } UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:imagesData applicationActivities:nil]; [self presentViewController:controller animated:YES completion:nil]; 请帮我理解代码中的错误。 先谢谢你!

iOS:如何将UIView的自绘内容转换为图像(广泛的一般解决scheme返回空白图像)?

我的商业应用程序需要一个function,让用户用手指在UIView上绘制签名并保存(通过工具栏上的button单击),以便将其附加到单元上。 一旦工作完成,这些单元将被上传到服务器,并且已经支持通过Base64上传的相机图片附件,所以我只是想将采取的签名转换成UIImage 。 首先,我需要一个解决scheme来绘制签名,我很快find了一些来自苹果的示例代码,似乎符合我的要求: GLPaint 我将这个示例代码整合到了我的项目中,因为我使用ARC和Storyboards,并且不需要声音效果和调色板等,但是绘制代码是直接的副本。 整合似乎是成功的,因为我能够在视图上绘制签名。 所以,下一步是为绘制的签名添加保存/图像转换function。 我已经做了无数的search,并推出了几十个类似问题的线程,大多数人指出了完全相同的解决scheme: (假设) drawingView :subclassed UIView在哪里完成绘图。) <QuartzCore/QuartzCore.h>和QuartzCore.framework 包括CoreGraphics.framework 包括OpenGLES.framework – (void) saveAsImage:(UIView*) drawingView { UIGraphicsBeginImageContext(drawingView.bounds.size); [drawingView.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *image = UIGraphicsGetImageFromCurrentContext(); UIGraphicsEndImageContext(); } 最后我的问题:这段代码不适合我,因为它总是返回一个空白图像 。 由于我已经整合了对使用iPhone相机拍摄的图片附件的支持,因此我最初假定image processing代码也应该在签名图像上工作。 但是,经过一些没有结果的search之后,我放弃了这个假设,拿了原来的GLPaint项目,只是添加了上面的几行代码,只是显示图像,它也完全是空白的。 所以,这是不是在UIView上的自绘内容或任何我失踪的代码的问题。 我对这个问题基本没有想法,希望有人能帮助我。 最好的问候Felix

如何在屏幕上显示UIControl的子类

我已经通过下面的代码创build了一个名为ToggleImageControl的UIControl的子类(参考下面的在UITableViewCell中的checkbox图像切换 ) @interface ToggleImageControl : UIControl { BOOL photoIsStarred; UIImageView *imageView; UIImage *normalImage; UIImage *selectedImage; } @property (nonatomic, assign) BOOL photoIsStarred; @property (nonatomic, retain) UIImageView *imageView; @property (nonatomic, retain) UIImage *normalImage; @property (nonatomic, retain) UIImage *selectedImage; – (void) toggleImage; @end @implementation ToggleImageControl @synthesize photoIsStarred, imageView, normalImage,selectedImage; – (id)initWithFrame:(CGRect)frame { NSLog(@"in inti with frame method"); self.normalImage […]

加载UIImage的好习惯

我在我的应用程序中有几个图标,我在多个视图中重用(例如最喜欢的图标)。 为了节省内存,我想知道是否使用类加载静态图像的类方法是一个好主意? 例如 : + (UIImage *)favoriteIcon { static UIImage * icon; if (!icon) icon = [UIImage imageNamed:@"favorite.png"]; return icon; } 或者我应该每次需要时只使用+ (UIImage *) imageNamed:(NSString *)name ? 感谢您的build议。

外部延伸和内部的可调整的UIImage保持不变

我正在尝试在我的应用中为垂直条创build一个“抓地力”,以向用户显示他们可以在视图上滑动。 我想只使用一个小的版本的图像,它具有抓地力和1px的上下,这是酒吧的其余部分的背景。 所以: ssss ssss gggg becomes ssss ssss gggg ssss ssss 方法resizableImageWithCapInsets:允许你告诉iOS不调整外部边缘,但有没有办法告诉它不要调整内部和外部拉伸? 我已经试过指定一个超大的帽子插入, UIEdgeInsetsMake(29.0f, 0.0f, 29.0f, 0.0f)并导致夹在图像的框架的顶部,但是否则是我正在寻找正确的伸展行为对于。 我只需要把握部分在框架中心。 完整的代码对于那些有兴趣的人来说(这导致了整个长度的重复): gripBar = [[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"grip"] resizableImageWithCapInsets:UIEdgeInsetsMake(1.0f, 0.0f, 1.0f, 0.0f)]]; gripBar.frame = CGRectMake(0, 0, gripWidth, fullHeight); [view gripBar]; 更新:基于所选答案的工作代码 @implementation GripBar – (id)init { self = [super init]; if (self) { UIImageView *bar = [[UIImageView […]