gpt4 book ai didi

swift - 如何使用Swift跨平台编写png图片

转载 作者:可可西里 更新时间:2023-11-01 01:32:49 24 4
gpt4 key购买 nike

我在写一点cross-platform raytracer in Swift .目前我被困在写出生成的图像的地方。我搜索了几天图书馆,但我只找到了以下内容:

  • 使用 UIImagePNGRepresentation 编写 PNG : 不,那只是 iOS
  • lodepng - 一个仅由 2 个文件(.c 和 .h)组成的轻量级 c 库:看起来很有前途,但它不会与我的 swift 程序链接 - 非常令人失望
  • libpng : 完全成熟的 png 库对我来说太过分了。

图像输出是用 swift 编写的初始光线追踪算法的最后一 block 砖。如果有人知道如何实现这一点,我将非常感激。也许有人可以提供有用的建议来解决这个问题。

另一种选择是找到一种非常简单的图像格式,它要么存在一个库,要么我可以为它自己编写一个 Swift 算法。

最佳答案

我会使用 netpbm 这是一种普通格式,然后使用第三方转换器(如 ImageMagick 或 GraphicsMagick)将其转换为最终格式。

您可以使用 netpbm 库,或者自己编写像素。

格式描述here

典型的 PPM 文件如下所示,其中“P3”魔数(Magic Number)表示它采用 ASCII 格式:

$ cat p3.ppm
P3 4 4 255
0 0 0 0 0 0 0 0 0 255 0 255
0 0 0 0 255 127 0 0 0 0 0 0
0 0 0 0 0 0 0 255 127 0 0 0
255 0 255 0 0 0 0 0 0 0 0 0

view of sample PPM image

如果你愿意,你可以编写一个“P6”格式的PPM文件,其中像素是原始字节;

$ od -c p6.ppm
0000000 P 6 \n 4 4 \n 2 5 5 \n \0 \0 \0 \0 \0
0000020 \0 \0 \0 \0 377 \0 377 \0 \0 \0 \0 377 177 \0 \0 \0
0000040 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 377 177 \0 \0 \0 377
0000060 \0 377 \0 \0 \0 \0 \0 \0 \0 \0 \0

关于swift - 如何使用Swift跨平台编写png图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38984260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com