标签: uiimage

画一个简单的圆圈uiimage

我试着用一个简单的蓝色圆圈制作一个20x20的UIImage.我尝试使用此功能,但结果是黑色方块中的蓝色圆圈.如何移除圆圈周围的黑色方块?

功能:

+ (UIImage *)blueCircle {
    static UIImage *blueCircle = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        UIGraphicsBeginImageContextWithOptions(CGSizeMake(20.f, 20.f), YES, 0.0f);
        CGContextRef ctx = UIGraphicsGetCurrentContext();
        CGContextSaveGState(ctx);

        CGRect rect = CGRectMake(0, 0, 20, 20);
        CGContextSetFillColorWithColor(ctx, [UIColor cyanColor].CGColor);
        CGContextFillEllipseInRect(ctx, rect);

        CGContextRestoreGState(ctx);
        blueCircle = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();

    });
    return blueCircle;
}
Run Code Online (Sandbox Code Playgroud)

实际结果: 在此输入图像描述

geometry core-graphics uiimage cgcontext ios

38
推荐指数
3
解决办法
2万
查看次数

使用宽高比调整UIImage的大小?

我正在使用此代码调整iPhone上的图像大小:

CGRect screenRect = CGRectMake(0, 0, 320.0, 480.0);
UIGraphicsBeginImageContext(screenRect.size);
[value drawInRect:screenRect blendMode:kCGBlendModePlusDarker alpha:1];
UIImage *tmpValue = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Run Code Online (Sandbox Code Playgroud)

只要图像的宽高比与新调整大小的图像的宽高比相匹配,哪个工作正常.我想修改它,以便保持正确的宽高比,并在图像不显示的任何地方放置黑色背景.所以我仍然会得到一张320x480的图像,但在顶部和底部或两侧都有黑色,具体取决于原始图像尺寸.

有没有一种简单的方法来做到这一点类似于我正在做的事情?谢谢!

iphone core-graphics uiimage ios

37
推荐指数
1
解决办法
3万
查看次数

来自iOS中CALayer的UIImage

在我的应用程序中,我创建了一个CALayer(有几个子层 - CALayer由添加为子层的形状组成).

我正在尝试创建一个UIImage我将能够上传到服务器(我有这个代码).但是,我无法弄清楚如何添加CALayer到a UIImage.

这可能吗?

objective-c calayer uiimageview uiimage ios

37
推荐指数
4
解决办法
2万
查看次数

iPhone,"超过最多5个过滤的专辑列表试图注册.这将失败." 错误

当我尝试从照片库中读取图像时,我收到错误消息"超过最多5个过滤的专辑列表试图注册.这将失败." 图像未读取.

知道如何解决这个问题吗?

iphone xcode uiimagepickercontroller uiimage

37
推荐指数
2
解决办法
1万
查看次数

swift上的UIImage无法检查是否为零

我在Swift上有以下代码

var image = UIImage(contentsOfFile: filePath)
        if image != nil {
           return image
       }
Run Code Online (Sandbox Code Playgroud)

它过去工作得很好,但现在在Xcode Beta 6上,它会返回一个警告

 'UIImage' is not a subtype of 'NSString'
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么做,我尝试了不同的东西

 if let image = UIImage(contentsOfFile: filePath) {
            return image
   }
Run Code Online (Sandbox Code Playgroud)

但错误变为:

Bound value in a conditional binding must be of Optional type
Run Code Online (Sandbox Code Playgroud)

这是Xcode6 beta 6上的错误还是我做错了什么?

xcode uiimage ios swift

37
推荐指数
2
解决办法
4万
查看次数

如何使用NSString绘制功能从文本创建UIImage

我想NSString在a中绘制变量的内容UIImage,但我完全不知道如何做到这一点.我需要编写一个接收NSStringas参数的方法,并返回一个UIImage带有文本的方法.

iphone nsstring uiimage

36
推荐指数
2
解决办法
2万
查看次数

制作圆形表格的UIImage

我一直试图将UIImage掩盖成一个圆圈.我现在正在使用其他答案中流行的代码,但是虽然我得到一个圆形,但它的边缘非常锯齿状而且不平滑.有人可以帮忙吗?我能得到一个完美,流畅的圆圈吗?

我用来创建掩码的代码是:

  (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage {

    CGImageRef imageNoAlpha = image.CGImage;

    CGColorSpaceRef cs = CGColorSpaceCreateDeviceRGB();

    CGFloat width = CGImageGetWidth(imageNoAlpha);
    CGFloat height = CGImageGetWidth(imageNoAlpha);

    CGContextRef ctxWithAlpha = CGBitmapContextCreate(nil, width, height, 8, 4*width, cs, kCGImageAlphaPremultipliedFirst);

    CGContextDrawImage(ctxWithAlpha, CGRectMake(0, 0, width, height), imageNoAlpha);

    CGImageRef imageWithAlpha = CGBitmapContextCreateImage(ctxWithAlpha);

    CGImageRef maskRef = maskImage.CGImage; 

    CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
                                        CGImageGetHeight(maskRef),
                                        CGImageGetBitsPerComponent(maskRef),
                                        CGImageGetBitsPerPixel(maskRef),
                                        CGImageGetBytesPerRow(maskRef),
                                        CGImageGetDataProvider(maskRef), NULL, false);

    CGImageRef masked = CGImageCreateWithMask(imageWithAlpha, mask);

    UIImage* retImage= [UIImage imageWithCGImage:masked];
    UIImage* retImageFixed = [retImage transparentBorderImage:1];

    CGImageRelease(mask);
    CGImageRelease(masked);
    CGImageRelease(imageWithAlpha);
    CGContextRelease(ctxWithAlpha);
    CGColorSpaceRelease(cs);

    return retImageFixed; …
Run Code Online (Sandbox Code Playgroud)

iphone xcode objective-c uiimageview uiimage

36
推荐指数
4
解决办法
2万
查看次数

在iOS中绘制部分图像的最有效方法

给定a UIImage和a CGRect,绘制与CGRect(不缩放)对应的图像部分的最有效方式(在内存和时间上)是什么?

作为参考,这是我目前的做法:

- (void)drawRect:(CGRect)rect {
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGRect frameRect = CGRectMake(frameOrigin.x + rect.origin.x, frameOrigin.y + rect.origin.y, rect.size.width, rect.size.height);    
    CGImageRef imageRef = CGImageCreateWithImageInRect(image_.CGImage, frameRect);
    CGContextTranslateCTM(context, 0, rect.size.height);
    CGContextScaleCTM(context, 1.0, -1.0);
    CGContextDrawImage(context, rect, imageRef);
    CGImageRelease(imageRef);
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,对于中等大小的图像和高setNeedsDisplay频率,这似乎非常慢.使用UIImageView框架并clipToBounds产生更好的结果(灵活性较低).

iphone uiimage drawrect quartz-2d ios

36
推荐指数
2
解决办法
2万
查看次数

如何将CVPixelBuffer变成UIImage?

我在从CVPixelBuffer获取UIIMage时遇到一些问题.这就是我想要的:

CVPixelBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(imageDataSampleBuffer);
CFDictionaryRef attachments = CMCopyDictionaryOfAttachments(kCFAllocatorDefault, imageDataSampleBuffer, kCMAttachmentMode_ShouldPropagate);
CIImage *ciImage = [[CIImage alloc] initWithCVPixelBuffer:pixelBuffer options:(NSDictionary *)attachments];
if (attachments)
    CFRelease(attachments);
size_t width = CVPixelBufferGetWidth(pixelBuffer);
size_t height = CVPixelBufferGetHeight(pixelBuffer);
if (width && height) { // test to make sure we have valid dimensions
    UIImage *image = [[UIImage alloc] initWithCIImage:ciImage];

    UIImageView *lv = [[UIImageView alloc] initWithFrame:self.view.frame];
    lv.contentMode = UIViewContentModeScaleAspectFill;
    self.lockedView = lv;
    [lv release];
    self.lockedView.image = image;
    [image release];
}
[ciImage release];
Run Code Online (Sandbox Code Playgroud)

height并且width都正确设置为相机的分辨率. image是创建但我似乎是黑色(或可能是透明的?).我不太明白问题出在哪里.任何想法,将不胜感激.

avfoundation uiimage ios

36
推荐指数
5
解决办法
3万
查看次数

使用phimagemanager将图像保存到自定义相册?

我正在制作一个使用AVFoundation拍照的应用程序,我想将它们保存到自定义相册中,然后我可以在我的应用中查询和显示.(除非用户想要,否则我宁愿不在普通照片卷中使用它们)我无法在Swift中找到任何显示如何执行此操作的内容......或者根本没有.有没有不同的方式我应该这样做?

我在SO上找到了这个例子,但它对我没有意义,我无法让它工作.

    func savePhoto() {
    var albumFound : Bool = false
    var assetCollection: PHAssetCollection!
    var photosAsset: PHFetchResult!
    var assetThumbnailSize:CGSize!

    // Create the album if does not exist (in viewDidLoad)
    if let first_Obj:AnyObject = collection.firstObject{
        //found the album
        self.albumFound = true
        self.assetCollection = collection.firstObject as PHAssetCollection
    }else{
        //Album placeholder for the asset collection, used to reference collection in completion handler
        var albumPlaceholder:PHObjectPlaceholder!
        //create the folder
        NSLog("\nFolder \"%@\" does not exist\nCreating now...", albumName)
        PHPhotoLibrary.sharedPhotoLibrary().performChanges({
            let request = PHAssetCollectionChangeRequest.creationRequestForAssetCollectionWithTitle(albumName)
            albumPlaceholder = request.placeholderForCreatedAssetCollection
            }, …
Run Code Online (Sandbox Code Playgroud)

uiimage ios swift ios8 phasset

35
推荐指数
3
解决办法
2万
查看次数