iOS中对图片进行重绘处理的方法总结 一、CGImageRef是什么 CGImageRef是定义在QuartzCore框架中的一个结构体指针,用C语言编写。...CGImageRef CGImageCreateCopy(CGImageRef image) 这个方法可以复制一个CGImageRef对象 CGImageRef CGImageCreateWithJPEGDataProvider...(CGImageRef image, CGImageRef mask) 截取mask图像的某一区域重绘 CGImageRef CGImageCreateWithMaskingColors(CGImageRef...(CGImageRef image) 引用-1 bool CGImageIsMask(CGImageRef image) 返回是否为Mask图层 size_t CGImageGetWidth(CGImageRef...(CGImageRef image) CGBitmapInfo CGImageGetBitmapInfo(CGImageRef image) 三、应用举例 使用CGImageRef进行图片截取
二、通过图像裁剪创建图像 CoreGraphics框架中提供了许多方法来创建位图数据引用CGImageRef对象,其中封装在CGImage.h文件中。...在UIKit框架中也提供了方便的接口供开发者进行CGImageRef与UIImage对象的相互转换。 ...:@"image"].CGImage; CGContextDrawImage(contextRef, CGRectMake(0, 0, 320, 200), orignImage); CGImageRef...orignImage = [UIImage imageNamed:@"image"].CGImage; CGImageRef maskRef = [UIImage imageNamed:@"maskImage...orignImage = [UIImage imageNamed:@"image2"].CGImage; CGImageRef maskRef = [UIImage imageNamed:@"
函数创建CGImageRef 然后把CGImageRef放到CGContext中去编辑 第三种 用CGImageCreateCopy或者CGImageCreateCopyWithColorSpace 函数拷贝...CGImageRef CGImageCreateCopy(CGImageRef image) 这个方法可以复制一个CGImageRef对象 CGImageRef CGImageCreateWithJPEGDataProvider...(CGImageRef image,CGImageRef mask) 截取mask图像的某一区域重绘 CGImageRef CGImageCreateWithMaskingColors(CGImageRef...image, CGColorSpaceRef space) 通过颜色空间模式复制位图 CGImageRef CGImageRetain(CGImageRef image) 引用+1 void...(CGImageRef image) size_t CGImageGetBitsPerPixel(CGImageRef image) size_t CGImageGetBytesPerRow(CGImageRef
在workspace的framework目录里添加这两个framework.在UIKit里,图像类UIImage和CGImageRef的画图操作都是通过Graphics Context来完成。...如果需要特定区域的图像,可以crop一下) CGImageRef screen = UIGetScreenImage(); UIImage* image = [UIImage imageWithCGImage...(UImage封装了CGImage, 互相转换很容易) UIImage* imUI=nil; CGImageRef imCG=nil; imUI = [UIImage initWithCGImage:...(在apple dev上有QA, 不过好像还不支持ios) 下面给出一个在ios上反色的例子 -(id)invertContrast:(UIImage*)img { CGImageRef inImage...(显示图像数据区,也就是unsigned char*转为graphics context或者UIImage或和CGImageRef) CGContextRef ctx = CGBitmapContextCreate
1 图片处理 1.1 编辑图片的几个方法 第一种 先用UIImage对象加载一张图片 然后转化成CGImageRef放到CGContext中去编辑 第二种 用CGImageCreate...函数创建CGImageRef 然后把CGImageRef放到CGContext中去编辑 第三种 用CGImageCreateCopy 或者CGImageCreateCopyWithColorSpace...CGImageRef CGImageCreateCopy(CGImageRefimage) 这个方法可以复制一个CGImageRef对象 CGImageRef CGImageCreateWithJPEGDataProvider...(CGImageRef image, CGImageRefmask) 截取mask图像的某一区域重绘 CGImageRef CGImageCreateWithMaskingColors(CGImageRefimage..., const CGFloatcomponents[]) 通过颜色分量数组创建位图 CGImageRef CGImageCreateCopyWithColorSpace(CGImageRefimage
result; } - (UIImage *)imageFromBRGABytes:(unsigned char *)imageBytes imageSize:(CGSize)imageSize { CGImageRef...*image = [UIImage imageWithCGImage:imageRef]; CGImageRelease(imageRef); return image; } - (CGImageRef... colorSpace, kCGImageAlphaPremultipliedLast); CGImageRef
myImageRect = CGRectMake(70, 10, 150, 150); UIImage* bigImage= [UIImage imageNamed:@"mm.jpg"]; CGImageRef...imageRef = bigImage.CGImage; CGImageRef subImageRef = CGImageCreateWithImageInRect(imageRef, myImageRect
ALAssetOrientationRightMirrored , // vertical flip }; */ - (void)writeImageToSavedPhotosAlbum:(CGImageRef...const ALAssetsGroupPropertyURL;//组URL */ - (id)valueForProperty:(NSString *)property; //获取当前组的缩略图海报 - (CGImageRef...)thumbnail; - (CGImageRef)aspectRatioThumbnail; //写入图片数据 - (void)writeModifiedImageDataToSavedPhotosAlbum...)buffer fromOffset:(long long)offset length:(NSUInteger)length error:(NSError **)error; //获取图片数据 - (CGImageRef...)fullResolutionImage; - (CGImageRef)CGImageWithOptions:(NSDictionary *)options; //获取全屏图片 - (CGImageRef
UImage *image = [UImage imageNamed:@"fly"]; CGImageRef cgImageRef = [image CGImage]; // 将UImage转换为CGImageRef...// 获取图片宽高 GLuint width = (GLuint)CGImageGetWidth(cgImageRef); GLuint height = (GLuint)CGImageGetHeight...(cgImageRef); //获取图片的rect CGRect rect = CGRectMake(0, 0, width, height); //获取图片的颜色空间 CGColorSpaceRef...); CGContextClearRect(context, rect); // 对图片进行重新绘制,得到一张新的解压缩后的位图 CGContextDrawImage(context, rect, cgImageRef
imageData]; [self takeImageCompletion:tempImage buffer:nil error:error]; } } 获取AVCapturePhoto的CGImageRef...error) { CGImageRef ref = [photo CGImageRepresentation]; UIImage * image = [UIImage imageWithCGImage...error) { CGImageRef ref = [photo CGImageRepresentation]; // 这里是用的是生成图片时的设备方向
处理图片颜色 (UIImage)grayscale:(UIImage)anImage type:(int)type{ CGImageRef imageRef = anImage.CGImage;...(data)); CGDataProviderRef effectedDataProvider = CGDataProviderCreateWithCFData(effectedData); CGImageRef
(CGBitmapInfo)kCGImageAlphaNone); CIContext *context = [CIContext contextWithOptions:nil]; CGImageRef...bitmapRef, scale, scale); CGContextDrawImage(bitmapRef, extent, bitmapImage); // 2.保存bitmap到图片 CGImageRef
May return nil if image has no CGImageRef or invalid bitmap format UIKIT_EXTERN NSData * __nullable UIImagePNGRepresentation...May return nil if image has no CGImageRef or invalid bitmap format. compression is 0(most)..1(least)...kCGImageAlphaPremultipliedFirst 五.YYImage\SDWebImage开源框架实现 用于解压缩图片的函数 YYCGImageCreateDecodedCopy 存在于 YYImageCoder 类中,核心代码如下 CGImageRef...YYCGImageCreateDecodedCopy(CGImageRef imageRef, BOOL decodeForDisplay) { ......CGContextDrawImage(context, CGRectMake(0, 0, width, height), imageRef); // decode CGImageRef
nil]; CIImage *outputImage = filter.outputImage; CGImageRef...} int boxSize = (int)(blur * 100); boxSize = boxSize - (boxSize % 2) + 1; CGImageRef...colorSpace, kCGImageAlphaNoneSkipLast); CGImageRef
colorSpace, kCGBitmapByteOrder32Little | kCGImageAlphaNoneSkipFirst); CGImageRef...ONE_D_BAND_HEIGHT + 1); // cropRect.size.width = ONE_D_BAND_HEIGHT; // // do a rotate // CGImageRef...(width-cropRect.size.width)/2; cropRect.origin.y = (height-cropRect.size.height)/2; } CGImageRef
static CGContextRef CreateRGBABitmapContext (CGImageRef inImage) { CGContextRef context = NULL;...255),用无符号的char是因为它正好的取值范围就是0-255 static unsigned char *RequestImagePixelData(UIImage *inImage) { CGImageRef
> vertices[7]) { [self.glView display]; } } 通过 glReadPixels 来从内存中读取像素数据,GLubyte -> CGImageRef...(NULL, data, dataLength, NULL); CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB(); CGImageRef...kCGBlendModeCopy); CGContextDrawImage(cgcontext, CGRectMake(0, 0, imageWidth, imgHeight), iref); CGImageRef
].scale; // CGFloat targetHeight = imageSize.height * [UIScreen mainScreen].scale; // CGImageRef...CGContextDrawImage(bitmapContext, CGRectMake(0, 0, targetWidth, targetHeight), imageRef); // CGImageRef...CGDataProviderRef dataProvider = CGDataProviderCreateWithCFData((__bridge CFDataRef)data); // CGImageRef... // CGFloat targetHeight = imageSize.height * [UIScreen mainScreen].scale; // // CGImageRef...bitmapContext) return image; // // CGImageRef imgref = CGBitmapContextCreateImage(bitmapContext
获取CGImage 资源 */ guard let cgImageRef = CGImageSourceCreateImageAtIndex(imageSourceRef,...根据CGImage 创建NSImage */ let image = NSImage(cgImage: cgImageRef, size: CGSize(width: cgImageRef.width..., height: cgImageRef.height)) /** 8.
领取专属 10元无门槛券
手把手带您无忧上云