问题标签 [indexed-image]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何将索引像素格式图像转换为 32 位图像?
我有一个图像,我得到并尝试使用 Graphics.FromImage(image) 加载到图形对象中,但是如果图像具有索引像素格式,则会引发异常。
有没有办法安全地转换索引图像?
更新:感谢乔的提示,只是将旧图像绘制在新图像上,而不是我试图转换它。这很有意义。
c++ - 如何确定索引模式 SDL_Surface 是否具有透明度?
我有我一直在使用的代码来加载并将SDL_Surface
s 转换为 OpenGL 纹理,但是我意识到它们只适用于 RGB(A) 表面。我需要将支持扩展到索引模式图像(有或没有透明度)。
最初,我正在研究::SDL_SetColorKey()
,但它似乎只适用于 SDL blits。我已经阅读了SDL_Surface
、SDL_PixelFormat
和SDL_Color
,然后开始草拟以下内容(//# 是伪代码):
所以,问题是:如何确定我传递给该例程的索引模式图像是否具有透明度?
c# - 使用索引颜色表捕获程序的屏幕截图
网上有很多关于如何使用 C# 捕获和保存屏幕截图的教程。例如,我使用这个网站来获取我的解决方案:
它在大多数程序中都能正常工作,但我要捕获的程序使用 8 位索引颜色表。使用此代码拍摄的该程序的屏幕截图很奇怪。我的问题是,是否有人可以指出我在 C# 中使用索引颜色表捕获程序屏幕截图的正确方向?
为了帮助您帮助我,我将在下面描述我的发现和尝试的解决方案。
使用 8 位索引颜色表的全屏程序代码捕获的屏幕截图大部分是黑色(约 88 %),其中只有 17 种其他颜色。我没有看到这 17 种颜色的图案。在程序本身中,几乎所有 256 种颜色都被使用。我希望在黑色屏幕截图中也能找到 256 种颜色,这可能表示简单的一对一关系,但事实并非如此。
我还想指出,手动截取的屏幕截图是完美的(例如,当我将它们粘贴到 MS Paint 中时)。出于这个原因,我在手动截屏后尝试从 System.Windows.Forms.Clipboard.GetImage() 获取图像,但这会返回一个 COMobject,我不知道该怎么做。当然,它必须包含有效屏幕截图的信息,因为 MS Paint 知道如何从该 COM 对象中提取它。我怎样才能自己提取它,最好是在 C# 中?
但我的主要问题是:有人能指出我使用 C# 捕获带有索引颜色表的程序屏幕截图的正确方向吗?
python - Python PIL:创建具有透明背景的索引彩色图像
我想知道如何创建具有透明背景和只有 2 种索引颜色(红色和蓝色)的图像以最小化文件大小?
更具体地说,我有两张要转换的黑白图像,一张转换为透明和蓝色,另一张转换为透明和红色。然后我想合并这两个图像。我可以使用常规的 RGBA 图像来做到这一点,但我真的希望对颜色进行索引以最小化文件大小。
理想情况下使用 PIL,但其他 Python 库也可以工作。
opencv - 访问 C 中索引图像的调色板
假设我想按原样读取索引图像(不是 3 通道 24 位图像)我希望读取和修改索引图像的调色板。在opencv中,我没有遇到任何提取图像调色板的函数!我也想知道调色板的数据类型。我正在使用opencv在c中编码任何帮助?
image - 将 uint32 中的索引图像转换为 double
我在文档中阅读了以下内容im2double
课堂支持:
强度和真彩色图像可以是 uint8、uint16、double、logical、single** 或 int16。索引图像可以是uint8、uint16、double或 logical。二进制输入图像必须是合乎逻辑的。输出图像是双倍的
我正在使用 64 位机器(即 MATLAB 使用8 个字节来表示 double 类型的变量)。我有一个uint32类型的索引图像,我相信我应该能够将其转换为double类型,但im2double
似乎不支持它,即我收到以下错误:
使用 im2double 时出错 预期输入编号 1,Image,是以下类型之一:
双,逻辑,uint8,uint16,int16,单
相反,它的类型是 uint32。
那么,如何将类型的矩阵(索引图像)转换uint32
为double
?
这一切都在MATLAB 2012a上
c# - 索引图像上的图形
我收到错误:
“不能从具有索引像素格式的图像创建图形对象。”
在功能上:
我想问你,我该如何解决?
android - 使用 Android 的图形 API 的索引颜色
我正在为 Android 制作一个绘图程序,我想支持的功能之一是能够调整颜色并在绘图中实时查看颜色变化。
为了表示绘图,程序在内部存储了一个 2D int 索引数组(“颜色索引数组”),该数组引用了一个有限的调色板数组。当调整绘图的一部分时,颜色索引数组会随着实际绘制到屏幕上的位图(“屏幕位图”)一起调整。
使用这种方法,当调整颜色时,我必须循环整个颜色索引数组并重新渲染整个位图。我想避免遍历整个数组。
我尝试过的一件事是为调色板中的每种颜色保留一个单独的ALPHA_8位图。每个位图包含 0xff 像素设置为该颜色和 0x00 未设置。当颜色改变时,我使用具有新颜色的 Paint 在屏幕位图顶部绘制正在改变的颜色的 ALPHA_8 位图。
该解决方案有效,并且比天真的循环解决方案更有效,但我遇到的问题是setPixel不适用于 ALPHA_8 位图。它默默地失败了。相反,我需要为每个 ALPHA_8 位图维护一个单独的ByteBuffer,然后使用 copyPixelsFromBuffer来更新实际位图。这是不可取的,因为它将应该是 O(1) 的操作变成了 O(n) 的操作,并使我的 ALPHA_8 位图所需的存储空间增加了一倍。
我觉得我没有看到明显的解决方案。有什么我错过的吗?
algorithm - MATLAB 中的 rgb2ind() 使用什么算法?
我正在阅读RGB2IND函数的文档,发现它使用Uniform Quantization、Minimum Variance Quantization和Inverse Colormap,尽管我不太明白这些参数如何适合给定的算法。
是否有任何解释语言(MATLAB、JavaScript、Python)的代码示例可以准确地演示此函数在此语法中的工作方式?
matlab - 为什么不同的命令会导致不同的索引颜色图
我使用获取索引图和颜色图,[index_map,colormap] = imread('indexed_color_image.tif');
然后使用两个不同的命令显示结果。他们的结果看起来非常不同。
你能解释一下吗?谢谢 !这是原始图像。(索引图像)。
案例1的结果与原始图像一样。但是案例 2 的结果很奇怪。看到这个