【问题标题】:Why does my movie from UIImages gets distorted?为什么我的 UIImages 电影会失真?
【发布时间】:2012-03-30 07:16:42
【问题描述】:

我正在使用zoul's solution 将 UIImage 数组导出为电影。但是我的框架都变形了。这是原图:

这是一个类似的失真示例:

我读过here 说它与纵横比有关,但没有说明如何解决它。

【问题讨论】:

  • 我知道这是因为乘以16,但是这个问题怎么解决?我有 1080*1980 的图片有什么建议吗?
  • @DipenChudasama 缩小到宽度为 16 的倍数的大小
  • 谢谢@Cbas 我也在做同样的事情:)

标签: iphone objective-c uiimage export avfoundation


【解决方案1】:

经过大量不同图像尺寸的实验,在article 的帮助下,我得出的结论是图像的宽度必须是 16 的倍数。

【讨论】:

  • 浪费了好几个小时想知道发生了什么……这是关键!
  • 这终于做到了!非常感谢。
  • 非常感谢!我为此苦苦挣扎了好几个小时!这解决了它!
  • 我们知道为什么会这样吗?
  • 很棒很棒很棒!!!伙计们,最好的尺寸是 1024 x 1024 ,只需将您的图像转换为 1024
【解决方案2】:

对于那些在 2020 年仍在努力的人,他们的电影会因为宽度不是 16 像素而失真

改变

CGContextRef context = CGBitmapContextCreate(pxdata,
                                             width, height,
                                             8, 4 * width,
                                             rgbColorSpace,
                                             kCGImageAlphaNoneSkipFirst);

CGContextRef context = CGBitmapContextCreate(pxdata,
                                             width, height,
                                             8, CVPixelBufferGetBytesPerRow(pxbuffer),
                                             rgbColorSpace,
                                             kCGImageAlphaNoneSkipFirst);

感谢@Bluedays Output from AVAssetWriter (UIImages written to video) distorted

【讨论】:

    【解决方案3】:

    我也遇到过这个问题,发现是图片大小不是16的倍数,你可以换个大小试试看。

    【讨论】:

    • 请澄清您的意思。您的意思是图像大小实际上不必为 16 - 并且您只需要指定宽度?如果是这样,你在哪里指定宽度?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-30
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多