Tag: 图像处理

无法在位图中设置调色板

我一直在写一个PCX解码器,到目前为止,PCX图像本身解析得很好,但我无法弄清楚如何设置位图的调色板。 我创建了一个像这样的位图: Bitmap bmp = new Bitmap(width, height, stride2, System.Drawing.Imaging.PixelFormat.Format8bppIndexed, pixels); 但我似乎无法使用以下方法设置调色板: for (int i = 0; i < 256; i += 3) { Color b = new Color(); b = Color.FromArgb(palette[i], palette[i + 1], palette[i + 2]); bmp.Palette.Entries.SetValue(b, i); } 在这个例子中,我已经读完了pcx文件调色板中的每个字节并将它们存储在palette []中。 从那里,我用它来设置位图调色板中的条目。 如何设置颜色?

位图到avi文件c#.Net

我有一个位图列表,如何使用c#.net将其转换为avi文件。 或者我们如何将一组图像转换为video文件? 我不需要AVI来“设置图像”,但我需要AVI的“图像集”。

C#中的图像色调修改

我有一个图像,我想将该特定图像的色调修改为特定值。 我知道rgb到hsl和hsl到rgb转换数学公式但是我无法将这个东西实现到c#中。 以下是伪: for(x=0;x<image_width;x++) { for(y=0;y<image_height;y++) { Color oldColor=GetColorFromPixel(x,y); Color newColor=ModifyHue(oldColor); SetColorPixel(x,y,newColor); } } 谢谢

在Bitmap / Image中替换特定颜色的有效方法

在我的灰度图片中,我需要找到特定的值并用一些颜色替换它,例如黄色。 这是我现在的代码,但它并不像我需要的那么快。 有没有更有效的方法来实现这一目标? 我对ColorMatrix类很红,但找不到替换单个值而不影响整个图像的方法。 unsafe { byte stlThres = 115; int bytePerPixel = Image.GetPixelFormatSize(kpImageViewer1.Image.PixelFormat) / 8; var data = kpImageViewer1.Image.LockBits(new Rectangle(0, 0, kpImageViewer1.Image.Width, kpImageViewer1.Image.Height), ImageLockMode.WriteOnly, kpImageViewer1.Image.PixelFormat); for (int y = 0; y < data.Height; y++) { byte* row = (byte*)data.Scan0 + (y * data.Stride); for (int x = 0; x < data.Width; x++, row += […]

validation图像序列

问题 问题塑造 图像序列的位置和大小是固定的并且事先已知(它没有缩放 )。 它将非常短,最多20帧并且处于闭环状态。 我想validation(由按钮点击驱动的事件),我以前见过它。 可以说我有一些图像序列,如: http://img514.imageshack.us/img514/5440/60372aeba8595eda.gif 如果看到,我想看到与之关联的ID,如果没有 – 它将被分析并添加为已经看到的图像序列的新实例。 我有很长一段时间,但我承认,这可能是一个难题。 我似乎很难把这些放在一起,有人可以协助(在C#中)吗? 限制和用途 我并没有尝试重新创建版权检测系统,就像Youtube实施的内容ID系统一样(Margaret Gould Stewart在TED( 链接 ))。 图像序列可以像(.gif)文件一样被考虑,但它不是,并且没有直接的方法来获取二进制文件。 可以使用类似的方法,以避免“图像共享数据库”中的重复,但它不是我想要做的。 我的努力 高斯模糊 Mathematica函数生成高斯模糊内核: getKernel[L_] := Transpose[{L}].{L}/(Total[Total[Transpose[{L}].{L}]]) getVKernel[L_] := L/Total[L] 事实certificate,使用2遍矢量内核,然后使用矩阵内核更有效。 你的是基于Pascal三角形不均匀的行: {1d/4, 1d/2, 1d/4} {1d/16, 1d/4, 3d/8, 1d/4, 1d/16} {1d/64, 3d/32, 15d/64, 5d/16, 15d/64, 3d/32, 1d/64} 数据输入,散列,灰度和灯箱 源位的示例,可能有用: 已知矩形周围的灯箱:FrameX 使用MD5CryptoServiceProvider获取已知矩形atm内的内容的md5哈希值。 使用ColorMatrix灰度图像 来源示例 源示例( GUI […]

如何创建精灵图像

我正在尝试创建一个非常基本的精灵图像。 首先,我有一个现有的图像(宽度= 100像素,高度= 100像素)。 我将在此图像之间循环10到100次,每次将它放在前一个旁边的精灵上。 精灵限制在3000px宽。 将图像放在一起是很好的,因为我可以用简单的方法将它们组合在一起,但是,我需要将组合图像的宽度限制为3000px,然后从一个新行开始。

确定图像文件的格式?

如何以编程方式确定图像文件的图像格式,包括特定的编码,如TIFF组?

如何在C#中重复图像

我有一个具有特定图案的图像。 如何使用GDI在另一个图像中重复它? 有什么方法可以在GDI中完成吗?

无法加载文件或程序集“Magick.NET-x86.DLL”或其依赖项之一

我使用了Magick.NET,它是ImageMagick的.NET包装器,它会在客户端计算机上抛出上述错误。 它在我的机器上工作正常。 我没有安装ImageMagick所以我根本无法理解我在客户机上需要做什么。 我安装了VS 2012。 此外,Magick.NET包含ImageMagick,我认为它使用C ++ / CLI并将.NET接口暴露给本机ImageMagick,所有这些都在一个DLL中。 那么它需要什么DLL呢? (我刚刚发现了这个错误,所以发布了我找到的解决方案。)

resize时,某些图像正在旋转

简而言之,以下代码的目的是根据目标大小和乘数(1x,2x,3x)调整图像大小。 这工作正常,除了某些原因我还没有确定一些图像正在旋转。 public void ResizeImage(TargetSize targetSize, ResizeMultiplier multiplier, Stream input, Stream output) { using (var image = Image.FromStream(input)) { // Calculate the resize factor var scaleFactor = targetSize.CalculateScaleFactor(image.Width, image.Height); scaleFactor /= (int)multiplier; // Enum is effectively named constant with a value of 1, 2, or 3 var newWidth = (int)Math.Floor(image.Width / scaleFactor); var newHeight = […]