gpt4 book ai didi

haskell 光泽 : render Picture to Bitmap

转载 作者:行者123 更新时间:2023-12-02 11:12:41 27 4
gpt4 key购买 nike

我想访问正在显示到窗口的像素数据,但我没有运气在光泽中找到这样的函数,也没有尝试在键盘事件回调中调用 OpenGL readPixels。看起来光泽度将图片渲染到窗口而不暴露渲染的位图。

如果这在光泽中很难做到,是否有具有实时高级位图操作(平移、旋转、透明度)的替代方案?

最佳答案

事实证明,在这种情况下可以使用readPixels。我在挖掘 #haskell 聊天日志时发现了这个片段:

-- save a screenshot to a handle as binary PPM
snapshotWith :: (BS.ByteString -> IO b) -> Position -> Size -> IO b
snapshotWith f p0 vp@(Size vw vh) = do
let fi q = fromIntegral q
p6 = "P6\n" ++ show vw ++ " " ++ show vh ++ " 255\n"
allocaBytes (fi (vw*vh*3)) $ \ptr -> do
readPixels p0 vp $ PixelData RGB UnsignedByte ptr
px <- BSI.create (fi $ vw * vh * 3) $ \d -> forM_ [0..vh-1] $ \y ->
BSI.memcpy
(d`plusPtr`fi(y*vw*3))
(ptr`plusPtr`fi ((vh-1-y)*vw*3))
(fi(vw*3))
f $ BS.pack (map (toEnum . fromEnum) p6) `BS.append` px

writeSnapshot :: FilePath -> Position -> Size -> IO ()
writeSnapshot f = snapshotWith (BS.writeFile f)

来自https://gitorious.org/maximus/mandulia/source/58695617c322b0b37ec72f9a0bd3eed8308bf700:src/Snapshot.hs

关于 haskell 光泽 : render Picture to Bitmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22144972/

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