Tag: uiimage

是否有可能在捕获的图像中添加自己的元数据在Swift中

我对Swift和Ios编程非常陌生。 如上所述,我喜欢将我自己的元数据插入捕获的图像,然后将其保存到相册中。 我试图用这个代码完成这个。 保存的图像不包含我自己的元数据,但包含其生成的元数据。 任何人都可以告诉我我做错了什么? 或者,也许是不可能添加自己的新的元数据表捕获的图像? 非常感谢你的帮助 @IBAction func btnPressed(sender: UIButton) { capturePicture() } func capturePicture(){ stillImageOutput.outputSettings = [AVVideoCodecKey: AVVideoCodecJPEG] session.addOutput(stillImageOutput) if let connection = self.stillImageOutput.connectionWithMediaType(AVMediaTypeVideo) { self.stillImageOutput.captureStillImageAsynchronouslyFromConnection(connection) { (imageDataSampleBuffer, error) -> Void in if error == nil { var asset = ALAssetsLibrary() let imageData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(imageDataSampleBuffer) // The Metadata of the Image var metadata:NSDictionary […]

如何findUIImage瓶颈

我有一个使用UIImage对象的应用程序。 到目前为止,我一直在使用像这样初始化的图像对象: UIImage *image = [UIImage imageNamed:imageName]; 在我的应用程序包中使用图像。 我一直在添加function,允许用户使用UIImagePickerController从相机或其库中使用图像。 显然,这些图像不能在我的应用程序包中,所以我以不同的方式初始化UIImage对象: UIImage *image = [UIImage imageWithContentsOfFile:pathToFile]; 这是在第一次调整图像大小,使其与我的应用程序包中的其他文件大小相似,都是使用Jpeg格式(有趣的是,即使对于相同的文件大小,PNG也慢得多)。 换句话说,由pathToFile指向的文件是与包中的图像大小相似的文件(像素尺寸匹配,并select了压缩,因此字节数相似)。 该应用程序经历了一个循环,从原始图像,除了其他事情与这篇文章无关的小块。 我的问题是,通过循环使用创build的第二种方式花费的时间比使用第一种方式创build的图像要长得多。 我意识到第一种方法caching图像,但我不认为这是相关的,除非我不理解caching如何工作。 如果是相关因素,我怎样才能把caching添加到第二种方法? 导致瓶颈的相关部分代码是这样的: [image drawInRect:self.imageSquare]; 这里,self是UIImageView的子类。 它的属性imageSquare只是一个CGRect定义了绘制的内容。 这两个方法的部分是相同的。 那么为什么第二种方法对于类似大小的UIImage对象来说太慢了? 有什么我可以做不同的优化这个过程? 编辑:我改变访问到imageWithContentsOfFile包中的图像,并执行循环的时间从约4秒改变到刚刚超过一分钟。 所以它看起来像我需要find一些像imageNamed做caching,但与非捆绑文件的方式。

以正确的方向保存图像 – Swift&Core Image

我在Swift中使用Core Image来编辑照片,并且在保存照片时遇到问题。 我没有保存正确的方向 。 当我从照片库中获取图片时,我将这个方向保存为UIImageOrientation的variables,但是我不知道如何在将编辑后的照片保存到照片库之前将其设置回来。 任何想法如何? 保存方向: var orientation: UIImageOrientation = .Up orientation = gotImage.imageOrientation 将编辑的照片保存到照片库: @IBAction func savePhoto(sender: UIBarButtonItem) { let originalImageSize = CIImage(image:gotImage) filter.setValue(originalImageSize, forKey: kCIInputImageKey) // 1 let imageToSave = filter.outputImage // 2 let softwareContext = CIContext(options:[kCIContextUseSoftwareRenderer: true]) // 3 let cgimg = softwareContext.createCGImage(imageToSave, fromRect:imageToSave.extent()) // 4 let library = ALAssetsLibrary() library.writeImageToSavedPhotosAlbum(cgimg, […]

更正存储在文档中的UIImage的方向与丢失的EXIF标签

对于使用iPad摄像头拍摄的UIImage的方向,我在SO上遇到了类似的问题。 本质上,我正在iPad上使用相机拍摄UIImage。 当我显示它时,它已经旋转了90度。 从阅读其他问题和答案,我现在明白,当相机拍摄照片时,它存储一个EXIF标签,它决定了照片的方向。 这通常会允许所有的Mac和iOS应用程序读取这个方向数据。 但是,我将我的图像作为NSData存储在文档目录中(已经通过UIImagePNGRepresentation进行了转换,并将URL保存在核心数据中)。我假设这样做的过程导致我失去了取向EXIF标记,显示不正确。 任何人都可以想办法纠正这个问题吗? 想法,build议和指针都欢迎。 非常感谢

iOS:循环播放图像的像素

我有两个相同的格式和大小的图像。 我想遍历每个图像的像素,find最左上angular和右上angular的差异坐标。 差值被认为是具有相同坐标的两个像素的像素颜色。 你能给我提供一个示例代码循环通过图像像素,并获取其颜色值?

截取当前不在iOS屏幕上的视图

我试图在两个ViewController之间进行转换。 我的Transition类有一个目标视图控制器的属性。 当我尝试获取目标视图的截图时,我使用这种方法: + (UIImage *)renderImageFromView:(UIView *)view withRect:(CGRect)frame { // Create a new context the size of the frame UIGraphicsBeginImageContextWithOptions(frame.size, YES, 0); CGContextRef context = UIGraphicsGetCurrentContext(); // Render the view [view.layer renderInContext:context]; // Get the image from the context UIImage *renderedImage = UIGraphicsGetImageFromCurrentImageContext(); // Cleanup the context you created UIGraphicsEndImageContext(); return renderedImage; } 所以当我想要图像时,我会这样做: UIImage […]

ios:如何用CGPath模糊图像?

我创build一个CGPath区域,如图所示的绿色圆圈。 CGPath区域需要清晰,其余的图像将被应用模糊或半透明的效果,我可以在CGPath里面用以下代码来裁剪图像: UIGraphicsBeginImageContext(view.frame.size); CGContextAddPath(ctx, path); CGContextClip(ctx); [view.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *clipImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); UIImageWriteToSavedPhotosAlbum(clipImage, nil, nil, nil); CGPathRelease(path); 但我不知道如何同时应用CGPath模糊或半透明的效果。 我想我可以模糊原始图像,并将其与剪辑图像合并,但我不知道如何实现它。

在UIButton中添加一个图像作为附件

我有以下的UIButton我想添加一个图像里面到最右边。 像一个accessoryView 我已经使用backgroundImage,我想避免将2个图像合并为1。 是否有可能在UIButton中添加另一个图像是一个AccesoryView可以说一个图像有一个PLUS在最右边? (我正在寻找一种方法来在button内插入新的图像) @luisCien评论 我试过了 [_addImage setImage:[UIImage imageNamed:@"shareMe"] forState:UIControlStateNormal]; _addImage.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight; 看起来像这样,我想要在文本的右侧形象。

IOS UIImage图像颠倒

如果我画我的图片我修复了问题使用CGAffintrasform CGAffineTransform myTr = CGAffineTransformMake(1, 0, 0, -1, 0, backImage.size.height); CGContextConcatCTM(context, myTr); [backImage drawInRect:CGRectMake(cbx, -cby, backImage.size.width, backImage.size.height)]; myTr = CGAffineTransformMake(1, 0, 0, -1, 0, backImage.size.height); CGContextConcatCTM(context, myTr); 当我想写入文件我使用这个 NSData *imageData = UIImageJPEGRepresentation(backImage, 0); 那么图像倒过来怎么样?

UIImage animationImages色调?

有没有办法在animation中对图像进行着色? 我知道我可以像这样一个单一的图像: var imageOne:UIImage = UIImage(named: "pullto_1.png")!; imageOne = imageOne.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate); refSequence.image = imageOne; 但是当我试图这样做的时候,它就不能工作: var imageOne:UIImage = UIImage(named: "pullto_1.png")!; imageOne = imageOne.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate) var image2:UIImage = UIImage(named: "pullto_2.png")!; image2 = image2.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate) var image3:UIImage = UIImage(named: "pullto_3.png")!; image3 = image3.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate) var image4:UIImage = UIImage(named: "pullto_4.png")!; image4 = image4.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate) refSequence.animationImages = NSArray(objects: imageOne, image2, image3, image4 ); refSequence.animationDuration […]