- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 C# 中一些基于像素的操作有疑问。我写了一个类作为 Bitmap 的图像外壳。 .通过使用 BitmapData,它可以比 Bitmap.GetRGB(x,y)
颜色对象更快地为您提供图像中某个 (x,y) 位置处像素的 RGB 值。和 LockBits直接访问图像数组并从那里读取字节。我添加了此函数以在 (x,y) 像素处获取 0x00RRGGBB
掩码中的 RGB。
public unsafe int getPixel(int x, int y)
{
byte* imgPointer = (byte*)bmpData.Scan0;
int pixelPos = 0;
if (y > 0) pixelPos += (y * bmpData.Stride);
pixelPos += x * (hasAlpha ? 4 : 3);
int blue = *(imgPointer + pixelPos);
int green = *(imgPointer + pixelPos + 1);
int red = *(imgPointer + pixelPos + 2);
int rgb = red << 16;
rgb += green << 8;
rgb += blue;
return rgb;
}
除了我使用 MSPaint 生成的任何图像之外,这对我迄今为止处理过的所有图像都完美无缺。例如,我用油漆制作了一张 5x1 的图像,其中包含 5 种黄色阴影。但是,当我将此图像加载到我的程序中时,图像步幅为 16!我怀疑它是 15(每个像素 3 个字节,5 个像素)但出于某种原因在前三个字节(第一个像素)之后有一个额外的字节,然后其余像素在数组中。
我只在 MSpaint 保存的图像中找到了这个,我希望有人能解释我这个额外字节的用途以及如何检测这个额外字节。
最佳答案
来自 MSDN :
步长是单行像素(扫描线)的宽度,四舍五入到四字节边界。如果步幅为正,则位图是自上而下的。如果步幅为负,则位图为自下而上。
所以步幅始终是 4 的倍数,对于您的 3x5,将四舍五入为 16。
关于c# - C# 中 MSpaint 图像的图像步幅为 +1 字节,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15300371/
我如何发送要在油漆中编辑的图片框的内容? 我想过快速暂时保存它然后发送要加载的临时地址,但我认为这会导致一些小的保存问题。 最佳答案 不幸的是,我目前在 C# 中提供了答案。幸运的是,只有语法而不是内
截取事件窗口的屏幕截图。 Set Wshshell=CreateObject("Word.Basic") WshShell.sendkeys"%{prtsc}" WScript.Sleep 1500
我正在尝试打开“mspaint”并在它初始化后立即找到它的句柄。但是,如果我调用 WaitForInputIdle,FindWindow 会返回 NULL。如果我尝试使用函数 Sleep(1000)
我有一个控制台应用程序,它应该在 MSPaint 中绘制随机图片(按下鼠标 -> 让光标随机绘制某些东西 -> 鼠标向上。这就是我到目前为止所拥有的(我在 Main 更好地理解我想要实现的目标的方法)
我试图通过我的程序调用 Paint 并想画一些东西 我所做的是 - 1.首先获取绘制窗口的句柄(我只产生了该进程),然后尝试将光标设置为中心并尝试获取该特定窗口的句柄,没有错误或警告,我已经检查过返回
我刚刚看了看写字板。有一个名为“插入画图”的功能区按钮。当我单击该按钮时,mspaint 会打开并提示我绘制一些东西。画完东西后,我可以单击“更新文档”按钮。没有保存选项(只有“将副本另存为”)。 此
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
我正在使用 windows.h (GDI) 在 C++ 中编写类似 mspaint 的简单程序。对于我的程序,我只需要钢笔工具。因此,我需要将主窗口的图片存储在某个地方(例如在内存 HDC 和 HBI
我对 C# 中一些基于像素的操作有疑问。我写了一个类作为 Bitmap 的图像外壳。 .通过使用 BitmapData,它可以比 Bitmap.GetRGB(x,y) 颜色对象更快地为您提供图像中某个
我一直在阅读很多关于创建图标然后在 Visual Studio Project --> Properties --> Icon and Manifest 中分配这些图标之一的帖子。当我这样做时,我收到
我是一名优秀的程序员,十分优秀!