【问题标题】:Is it possible to use CGContextScaleCTM to create a retina image?是否可以使用 CGContextScaleCTM 创建视网膜图像?
【发布时间】:2014-08-12 20:04:50
【问题描述】:

所以我在这里创建一个CGContextRef

CGContextRef bitmapContext = CGBitmapContextCreate(NULL, width, height, 8, 0, colorspace, kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Host);

然后我在那个CGContextRef上画一个CGLayer

CGContextDrawLayerAtPoint(bitmapContext, dest, cgLayer);

当我使用 CGContextScaleCTM 调整上下文大小时:

CGContextScaleCTM(bitmapContext, 1/self.desiredScale, 1/self.desiredScale);

我最终得到的图像小两倍,但 DPI 也只有一半。我想基本上将图像大小缩小一半,同时将 DPI 翻倍以将其转换为视网膜图像。

我找不到任何好的线索,所以任何信息都会很棒

提前致谢!

【问题讨论】:

    标签: objective-c macos scaling retina-display cgcontext


    【解决方案1】:

    您希望创建具有“真实像素”大小的上下文(通常为两倍,iPhone 6+ 为三倍)并使用乘数作为比例。基本上,与您正在做的相反。

    所以,要获得 2x 的 200x200pt 图像:

    CGBitmapContextCreate(nil, 400, 400, ...)
    CGContextScaleCTM(context, 2, 2)
    

    【讨论】:

      猜你喜欢
      • 2013-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多