首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在内存中的16位灰度位图上绘制

在内存中的16位灰度位图上绘制
EN

Stack Overflow用户
提问于 2011-07-22 01:54:32
回答 2查看 2.2K关注 0票数 7

需要在内存中绘制一个16位灰度位图。将TCanvas与位图相关联将是非常棒的。我使用的是Delphi,但是任何语言都可以。我只需要这个点子。

有什么想法吗?

不能将灰度转换为RGB,因为在转换过程中会丢失一半的分辨率(像素深度)。

EN

回答 2

Stack Overflow用户

发布于 2011-07-22 03:48:31

你可以尝试像ImageFX这样的图像库,或者对于开源的图像库,试试Graphics32,或者VampyreImagingLIbrary,根据它的Docs here,它支持一些操作,比如在加载到缓冲区中的图像上绘制线条和矩形。我期望扫描仪(图像处理)库比非图像库更好地支持灰度图像,但我不期望扫描仪图像处理库是基于内存的。

如果你不介意使用一些有点旧的东西,并且有点绑定到Microsoft Windows上,你可以考虑使用DirectDraw风格(现在合并到DirectX中)来做缓冲区管理(保存16位数据)和让你在上面绘图。我不知道它对16位灰度图像有任何特殊的支持。

有趣的是,WPF本身就支持16位灰度。如果你能了解他们是如何做到这一点的,你就可以模仿Delphi中的技术。该链接还讨论了使用OpenGL来实现16位亮度,但问题中并没有建议OpenGL允许这样做。我发现人们试图将OpenGL用于在delphi (16位灰度)图像显示中编写的医疗应用程序,但没有提到修改内存中的图像。

票数 1
EN

Stack Overflow用户

发布于 2014-09-11 14:52:39

你可以使用Gdi+,它不会在16位灰度上工作,但它可以在48位RGB图像上工作。

因此,我们可以通过复制所有三个channels.performs中相同的16位来将16位数据转换为48位RGB数据,然后再次将48位转换回16位

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6780464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档