美文网首页
iOS 图片缩放 图片黑白色

iOS 图片缩放 图片黑白色

作者: 烟雨痕 | 来源:发表于2018-05-17 10:46 被阅读128次

参考:https://www.jianshu.com/p/0bd04e3fcb7c

一、图片缩放

image.png image.png

二、设置图片黑白色

方式一:用GPUImage ,需要构建GPUImage到工程中。

/**
 图像黑白,像黑白漫画
 */
- (void)setupImageViewBlackAndWhiteWithImage:(UIImage *)image {
    GPUImagePicture *imagePicture = [[GPUImagePicture alloc] initWithImage:image];
    GPUImageAverageLuminanceThresholdFilter *averageFliter = [[GPUImageAverageLuminanceThresholdFilter alloc] init];
    averageFliter.thresholdMultiplier = 1.0;
    [imagePicture addTarget:averageFliter];
    [averageFliter useNextFrameForImageCapture];
    [imagePicture processImage];
    _imageView.image = [averageFliter imageFromCurrentFramebuffer];
}

方式二:使用CIImage

/**
 设置黑白色
 */
+ (UIImage *)blackAndWhite:(UIImage *)image
{
    CIImage *beginImage = [CIImage imageWithCGImage:image.CGImage];
    
    CIImage *blackAndWhite = [CIFilter filterWithName:@"CIColorControls" keysAndValues:kCIInputImageKey, beginImage, @"inputBrightness", @0.0, @"inputContrast", @2.5, @"inputSaturation", @0.0, nil].outputImage;
    CIImage *output = [CIFilter filterWithName:@"CIExposureAdjust" keysAndValues:kCIInputImageKey, blackAndWhite, @"inputEV", @1.0, nil].outputImage;
    
    CIContext *context = [CIContext contextWithOptions:nil];
    CGImageRef cgiimage = [context createCGImage:output fromRect:output.extent];
    UIImage *newImage = [UIImage imageWithCGImage:cgiimage scale:image.scale orientation:image.imageOrientation];
    
    CGImageRelease(cgiimage);
    return newImage;
}

三、图片按最大或者最小边缩放图片

//指定缩减的大小
+ (UIImage *)scaleToSize:(CGSize)size image:(UIImage *)image max:(BOOL)max {
    CGSize originImageSize = image.size;
    // 创建一个bitmap的context
    // 并把它设置成为当前正在使用的context
    CGFloat ratio = max ? MAX(size.width / originImageSize.width, size.height / originImageSize.height) :  MIN(size.width / originImageSize.width, size.height / originImageSize.height);
    UIGraphicsBeginImageContext(CGSizeMake(originImageSize.width * ratio, originImageSize.height * ratio));
    // 绘制改变大小的图片
    [image drawInRect:CGRectMake(0,0, originImageSize.width * ratio, originImageSize.height * ratio)];
    // 从当前context中创建一个改变大小后的图片
    UIImage * scaledImage = UIGraphicsGetImageFromCurrentImageContext();
    // 使当前的context出堆栈
    UIGraphicsEndImageContext();
    //返回新的改变大小后的图片
    return scaledImage;
}

相关文章

  • iOS 图片缩放 图片黑白色

    参考:https://www.jianshu.com/p/0bd04e3fcb7c 一、图片缩放 二、设置图片黑白...

  • 在 iOS 开发中如何优雅地进行图片缩放?

    在 iOS 开发中如何优雅地进行图片缩放? 在 iOS 开发中如何优雅地进行图片缩放?

  • iOS 图片缩放

    按指定尺寸缩放图片 根据屏幕的宽高等比压缩图片

  • iOS图片缩放

    概述 UIButton里要用到一张图片,但是实际的图片尺寸偏大,因此要根据真机的尺寸更改图片大小 方法 参考 io...

  • iOS图片缩放

    利用UIScrollView实现图片的缩放,适合新手。不多说了,直接上代码。

  • iOS 图片缩放

    需求分析 在App的图片查看中常见有以下功能: 图片随用户手指的点击,会进行相应区域的缩放,虽然这个简单的功能十分...

  • ios 图片缩放

  • iOS图片缩放

    1、直接使用UIKit提供的接口UIGraphicsImageRenderer 2、使用Core Graphics...

  • css 图片随屏幕等比例缩放

    有时我们希望图片能随屏幕大小的缩放而缩放,两种情况: 单个图片缩放 图片在盒子内缩放 裸图片的缩放 图片在一个盒子...

  • cocos2d-x 优化

    一,IOS与图片内存在IOS上,图片会被自动缩放到2的N次方大小。比如一张10241025的图片,占用的内存与一张...

网友评论

      本文标题:iOS 图片缩放 图片黑白色

      本文链接:https://www.haomeiwen.com/subject/brxbdftx.html