Tag: 像素

以cm C为单位调整图像大小#

我要求要求10 X 6,88 cm的图像。 我知道我不能简单地从cm转换为像素,导致一个像素大小取决于用户的显示分辨率。 我想知道是否有办法调整图像大小以厘米为单位。 (我还需要保留图片扩展名。例如:无法将其转换为pdf或其他扩展名)

C# – 转换8位或16位灰度原始像素数据

我需要能够将8位或16位灰度像素数据转换为.NET框架可以支持的文件格式。 我可用的数据是宽度,高度,方向(左下角)和像素格式,以每像素2个字节打包的4096灰度(12位分辨率)。 因此,例如,每个像素的范围从0到4096,并且每个像素是2个字节。 我已经尝试将PixelFormat.Format16bppGrayScale与Bitmap构造函数一起使用,并抛出GDI +exception。 我读过的所有内容都说不支持这种格式,并且MSDN错误。 我想将此像素缓冲区转换为.NET位图格式(如Format32bppArgb),尽可能减少图像质量损失。 谁知道怎么样?

获取图像中每种颜色的百分比使用情况

我有这个工作,但它在jpeg图像上非常缓慢,也需要一些改变。 我需要知道图像中的各个颜色(RGB的公差为+/- 1)和该颜色的图像的百分比。 因此,如果图像是黑白的,则会出现白色:74%黑色:26% 下面的代码就像我说的那样,但我需要添加一个容差系统,我不知道如何做到这一点。 private Dictionary getPixelData(Bitmap image) { Dictionary pixelData = new Dictionary(); //int col, row; //int r, g, b; Color pixel; double offset = 0.000001; int hmm = (image.Height * image.Width); double current = 0; offset = 100 / double.Parse(hmm.ToString());// 0.01;// 100 / (image.Height * image.Width) * 10000; try { for (int […]

如何转换像素格式? 从Cb的32bppRGB到16bpp灰度

我需要为我的图像做一些阈值处理。 阈值滤波器function只接受8-16bpp灰度 。 我的位图图片具有32bppRGB像素格式。 请为此建议一些代码。 (我也想知道是否有可能没有逐像素操作) ps我正在使用Aforge.NET进行阈值处理。 谢谢 -Sagar

C#中的每像素碰撞问题

我正在用C#编写一个小的2d游戏引擎用于我自己的目的,除了sprite碰撞检测之外它工作得很好。 我决定让它成为每像素检测(对我来说最容易实现),但它没有像预期的那样工作。 代码在发生之前很久就会检测到它。 我已经检查了检测的每个组件,但我找不到问题。 碰撞检测方法: public static bool CheckForCollision(Sprite s1, Sprite s2, bool perpixel) { if(!perpixel) { return s1.CollisionBox.IntersectsWith(s2.CollisionBox); } else { Rectangle rect; Image img1 = GraphicsHandler.ResizeImage(GraphicsHandler.RotateImagePoint(s1.Image, s1.Position, s1.Origin, s1.Rotation, out rect), s1.Scale); int posx1 = rect.X; int posy1 = rect.Y; Image img2 = GraphicsHandler.ResizeImage(GraphicsHandler.RotateImagePoint(s2.Image, s2.Position, s2.Origin, s2.Rotation, out rect), s2.Scale); int posx2 = […]

WPF像素到桌面像素

我之前已经将这个问题转换为关于将WPF像素坐标转换为桌面坐标的类似问题,但是我不确定我是否理解所涉及的数学。 令人惊讶的回答是“每个WPF单位的像素数= ConstantWPFUnit size *监视DPI;” 并且“不变的WPF单位大小是1/96。” 在我的例子中,我从一个图形对象中获取了DPI,该图形对象是从位图对象创建的(因为我找不到Astonish所说的属性)是我在拍摄桌面截图后创建的,所以我有: Graphics g = Graphics.FromImage(bitmap); float WpfUnit = (1 / 96) * g.DpiX; 鉴于从图形对象返回的DPI是96,我留下了 WpfUnit = (1 / 96) * 96 = 1 但是,对于某些未知(对我而言)的原因,WpfUnit出现为0。 我能看到解决这个问题的唯一方法就是说 if(WpfUnit == 0) WpfUnit = 1; 即使这并没有真正解决这个问题,因为高度值和最高值,当按照链接答案中的建议乘以WpfUnit时,除了乘以1之外没有对它们做任何事情。 因此,总的来说,我仍然坚持将WPF像素转换为桌面像素。 任何有关这方面的帮助将不胜感激。

所有像素的高效像素着色器总和

如何使用HSLS像素着色器有效地计算图像中所有像素的总和? 我对Pixel Shader 2.0感兴趣,我可以调用它作为WPF着色器效果。

如何测量给定字体/大小(C#)中数字的像素宽度

我正在尝试使用OpenXML规范中的官方公式计算Excel列的像素宽度,如本文所述。 但是,为了应用这个公式,我需要知道Normal字体的最大数字宽度 ,它是最宽数字的像素宽度。 OpenXML规范给出了这个例子作为澄清: 以Calibri字体为例,11磅字体的最大数字宽度为7像素(96 dpi)。 我通过目视检查一个Calibri 11点数字检查这是正确的,它确实是7像素宽。 所以,我正在尝试创建一个方法,它将返回任何字体/大小的最大数字宽度。 我已经按照这个问题提出的建议,但它没有产生我期待的结果。 这是我的测试代码: var font = new Font(“Calibri”, 11.0f, FontStyle.Regular); for (var i = 0; i < 10; i++) { Debug.WriteLine(TextRenderer.MeasureText(i.ToString(), font)); } 这会报告所有数字的宽度均为15。 有什么建议吗? 蒂姆,谢谢

线光栅化:覆盖所有像素,无论线条渐变?

基本上,我想使用行算法来确定哪些单元格可以检查我的raycaster的碰撞。 Bresenham并不是很好,因为它使用统一厚度的方法,这意味着它忽略了至少半覆盖线的细胞。 根本不是很好,因为这意味着我的线路的某些部分没有被检查与单元格的交叉点,导致错误。 我似乎无法找到任何“粗线”算法,任何人都可以帮我找到一个? 格林:我想要什么。 红色:我目前拥有和不想要的东西。

c#使用自定义像素绘制文本

我想知道这是否可能:我的ac#应用程序有一个类似于在表单上绘制的大约11000个圆圈的显示。 我想要实现的是能够在该显示器上绘制文本,但不使用“真实”像素,而是使用在表单上绘制的圆圈(矩形)作为像素。 编辑1: 在c#中绘制文本时,您可以使用Graphics.DrawString(…)类的东西,为方法提供一个矩形(如此坐标),其中应该绘制文本。然后使用屏幕在该矩形中绘制该文本像素。 我想要做的是绘制文本,但不使用屏幕像素,但我的显示组成的自定义像素。 编辑2 用于在表单上绘制圆圈的方法; Circles是由Circle对象组成的列表,其中circleRectangle返回应绘制圆的坐标, Filled告诉方法是否应填充圆。 public void DrawCircles(Graphics g) { graphics = g; graphics.SmoothingMode =System.Drawing.Drawing2D.SmoothingMode.AntiAlias; Pen pen = new Pen(Color.Black, penthickness); SolidBrush brush = new SolidBrush(Color.White); for (int j = 0; j < Circles.Count;j++ ) { graphics.DrawEllipse(pen, Circles[j].CircleRectangle); if (Circles[j].Filled) brush.Color = fillColor; else brush.Color = Color.White; graphics.FillEllipse(brush, Circles[j].CircleRectangle); } } […]