我正在尝试建模data Photo
并想知道用于图像数据的类型:
> data Photo =
> Photo
> { photoUploaderId :: AccountId
> , photoWidth :: Int
> , photoHeight :: Int
> , photoData :: ByteString
> }
Run Code Online (Sandbox Code Playgroud)
我在Data.ByteString
这里用.还有更好的选择吗?
背景:我将把图像数据存储在数据库中,并通过网络连接检索和发送它.在第一次将照片插入数据库时,我可能需要对其进行一些操作,例如缩放等.
一般来说,UArray是一个不错的选择.这取决于照片格式,你将如何阅读图像,以及你用它做什么样的处理.我发现Codec.Image.DevIL库对于照片处理很方便.这是将JPEG图像转换为PNG的示例.
import Codec.Image.DevIL
main = do
ilInit
img <- readImage "test.jpeg"
writeImage "test.png" img
Run Code Online (Sandbox Code Playgroud)
readImage函数具有此签名.
readImage :: FilePath -> IO (UArray (Int, Int, Int) Word8)
Run Code Online (Sandbox Code Playgroud)
它返回一个RGBA数组.指数是(行,列,颜色通道).IO (UArray (Int, Int, Int) Word8)
如果您打算使用该库,那将是一个不错的选择.
归档时间: |
|
查看次数: |
406 次 |
最近记录: |