【问题标题】:Image resizing with CIFilter?使用 CIFilter 调整图像大小?
【发布时间】:2012-08-09 13:39:06
【问题描述】:

是否可以使用 CIFilter 调整图像大小?我知道CILanczosScaleTransform,但它会调整图像保持比例。而且我需要在不保持比例的情况下调整图像大小。该怎么做?

【问题讨论】:

标签: objective-c macos core-image


【解决方案1】:

所有 CIFilter 都在下面。我想没有过滤器来调整图像大小。

  • CIAdditionCompositing
  • CIAffineTransform
  • CICheckerboardGenerator
  • CIColorBlendMode
  • CIColorBurnBlendMode
  • CIColorControls
  • CIColorCube
  • CIColorDodgeBlendMode
  • CIColorInvert
  • CIColorMatrix
  • CIColorMonochrome
  • CIConstantColorGenerator
  • CICrop
  • CIdarkenBlendMode
  • CIDifferenceBlendMode
  • CIExclusionBlendMode
  • CIExposureAdjust
  • CIFalseColor
  • CIGamma 调整
  • CIGaussianGradient
  • CIHardLightBlendMode
  • CIHighlightShadowAdjust
  • CIHue 调整
  • CIHueBlendMode
  • CILightenBlendMode
  • CILinearGradient
  • CILuminosityBlendMode
  • CIMaximum 合成
  • CIMinimumCompositing
  • CIMultiplyBlendMode
  • CIMultiply 合成
  • CIOverlayBlendMode
  • CIRadialGradient
  • CISaturationBlendMode
  • CIScreenBlendMode
  • CISepiaTone
  • CISoftLightBlendMode
  • CISourceAtop 合成
  • CISourceInCompositing
  • CISourceOutCompositing
  • CISourceOverCompositing
  • CIstraightenFilter
  • CIStripesGenerator
  • CITemperatureAndTint
  • CIToneCurve
  • CIVibrance
  • CIVignette
  • CIWhitePointAdjust

【讨论】:

  • 您能解释一下您是如何创建此列表的吗?我试过 NSLog(@"filterNamesInCategories %@", [CIFilter filterNamesInCategories:nil] );并获得了更多过滤器。其中之一是可缩放图像的 CILanczosScaleTransform。
  • 这看起来不完整,或者至少已经过时了。在 iOS 6 中有 93 个过滤器。
  • CILanczosScaleTransform 仅在 OS X 上可用。不在 iOS 中。他可能已经从 iOS 中列出来了。
【解决方案2】:

为什么你认为CILanczosScaleTransform 保持比例? CILanczosScaleTransform 有一个参数@"inputAspectRatio" 或kCIInputAspectRatioKey,它允许您缩放比例。你可以这样做

[filter setValue:[NSNumber numberWithFloat:0.7] forKey:@"inputAspectRatio"];

我从文档中获取了这个,并没有自己尝试,但我确信(由于我对 CIFilter 的实验)它可以工作。

【讨论】:

  • 注意CILanczosScaleTransform根据kCIInputScaleKey设置输出height。输出宽度是输入宽度乘以kCIInputScaleKey*kCIInputAspectRatioKey
【解决方案3】:

使用 CIAffineTransform 代替 CILanczosScaleTransform。将 a 和 d 设置为所需的比例值。这会将您的图像缩小或拉伸到任何提议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-23
    • 2015-05-02
    • 2011-09-07
    • 2021-06-25
    • 2012-02-28
    • 2013-08-21
    • 2014-12-10
    • 2011-04-26
    相关资源
    最近更新 更多