Tag: 位图

图像比较和返回百分比

int DiferentPixels = 0; Bitmap first = new Bitmap(“First.jpg”); Bitmap second = new Bitmap(“Second.jpg”); Bitmap container = new Bitmap(first.Width, first.Height); for (int i = 0; i < first.Width; i++) { for (int j = 0; j < first.Height; j++) { int r1 = second.GetPixel(i, j).R; int g1 = second.GetPixel(i, j).G; int b1 = second.GetPixel(i, j).B; […]

图像在C#中resize – 确定resize尺寸(高度和宽度)的算法

我需要缩小高度或宽度大于预定义像素值的图像。 我写了一些代码来查看原始图像,检查宽度,高度或高度和宽度是否大于最大宽度/最大高度设置。 我现在需要根据后一个值的最大值找出要resize的尺寸。 例如:如果图像为900h x 300w且MAX高度为700h我需要将高度调整为700并将宽度调整为???? < – 这是我需要计算的.. 创建和保存图像文件很简单,超出了本文的范围: // First I get the max height and width allowed: int resizeMaxHeight = int.Parse(Utility.GetConfigValue(“ResizeMaxHeight”)); // in config: 700px int resizeMaxWidth = int.Parse(Utility.GetConfigValue(“ResizeMaxWidth”)); // in config: 500px // Save original: try { filebase.SaveAs(savedFileName); } catch (System.IO.DirectoryNotFoundException ex) { Logger.Instance.LogException(ex, 0, “FileTransfer”); } // Determin original dimensions: […]

将位图转换为单色

我试图将图像保存为单色(黑白,1位深度),但我现在失去了如何做到这一点。 我开始使用png并转换为位图进行打印(它是一个热敏打印机,无论如何只支持黑色 – 如果我尝试将它们作为彩色/灰度发送,那么它对于大图像的速度会很慢)。 到目前为止,我的代码很简单,无法将其转换为位图,但它保留了原始颜色深度。 Image image = Image.FromFile(“C:\\test.png”); byte[] bitmapFileData = null; int bitsPerPixel = 1; int bitmapDataLength; using (MemoryStream str = new MemoryStream()) { image.Save(str, ImageFormat.Bmp); bitmapFileData = str.ToArray(); }

WPF – 将Bitmap转换为ImageSource

我需要将System.Drawing.Bitmap转换为System.Windows.Media.ImageSource类,以便将其绑定到WizardPage(扩展WPF工具包)的HeaderImage控件中。 位图设置为我编写的程序集的资源。 它被引用如下: public Bitmap GetBitmap { get { Bitmap bitmap = new Bitmap(Resources.my_banner); return bitmap; } } public ImageSource HeaderBitmap { get { ImageSourceConverter c = new ImageSourceConverter(); return (ImageSource) c.ConvertFrom(GetBitmap); } } 这个转换器是我在这里找到的: http : //www.codeproject.com/Questions/621920/How-to-convert-Bitmap-to-ImageSource我得到一个NullReferenceException return (ImageSource) c.ConvertFrom(Resources.my_banner); 如何初始化ImageSource以避免此exception? 或者还有另一种方式吗? 我希望之后使用它: <xctk:WizardPage x:Name="StartPage" Height="500" Width="700" HeaderImage="{Binding HeaderBitmap}" Enter="StartPage_OnEnter" 提前感谢您的任何答案。

WPF:如何每秒30次有效地更新图像

我正在编写一个使用组件的WPF应用程序,该组件将指针(IntPtr)返回到位图的像素(stride * height)。 我事先知道位图是24位rgb,它的宽度和高度。 使用这些位图更新Image控件会为用户构成一个video,但我不确定最有效的方法是什么,大多数情况下CPU使用率达到75%+且内存从40mb变为500mb nI认为GC开始工作然后再次下降到40mm。 该应用程序开始没有响应。 我该怎么办? 谢谢!

c#wpf多边形到位图不显示任何内容

对不起,如果您认为这个问题已经得到解答,我确实到处试图找出当我这样做的时候,它没有显示任何内容。 这是我的全部代码: Polygon hexagon = new Polygon(); PointCollection pc = new PointCollection(); double side = 25; double xOffset = 0, yOffset = 0; double r = System.Math.Cos((System.Math.PI / 180) * 30) * side; double h = System.Math.Sin((System.Math.PI / 180) * 30) * side; //Create the 6 points needed to create a hexagon pc.Add(new Point(xOffset, yOffset)); […]

如何检查图片是否为灰色

可能重复: 如何检查位图的颜色深度? 我正在接收照片的路径。 我需要知道该图片是否为grayScale。 我怎样才能做到这一点? 我正在尝试使用此代码将该路径加载到位图,但它一直告诉我该参数无效。 Bitmap myBitmap = new Bitmap(pFilePath); 我可以从ByteArray检查它是否为灰色等级吗? 或者有没有办法从Bitmap做到这一点? 怎么会这样? 谢谢。

使用EPL2打印语言打印bmp文件时出现大黑线

这是本主题的第3部分。 第1 部分 , 第2部分 。 我成功地将单色位图打印到我的打印机,但是当打印项目时,图像右侧有一个大的黑色条纹。 这是原作 (扫描)打印机打印的内容 用于生成二进制blob的代码 Rectangle rect = new Rectangle(0, 0, Bitmap.Width, Bitmap.Height); System.Drawing.Imaging.BitmapData bmpData = null; byte[] bitVaues = null; int stride = 0; try { bmpData = Bitmap.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadOnly, Bitmap.PixelFormat); IntPtr ptr = bmpData.Scan0; stride = bmpData.Stride; int bytes = bmpData.Stride * Bitmap.Height; bitVaues = new byte[bytes]; System.Runtime.InteropServices.Marshal.Copy(ptr, […]

Bitmap.Save上的ASP.NET错误“exception(0x80004005):GDI +中发生了一般错误。”

我有一个function,首先从磁盘读取图像,resize,然后保存到另一个目录。 当我使用Bitmap.Save(目录+ theimagename)时,它返回错误,如我在问题标题中所述。 我检查了目录是否正确,并且该目录中不存在给定的图像名称。 奇怪的是,相同的代码在本地机器上运行良好。 但是当我将它上传到我的共享主机空间时,它只是不起作用。 代码如下。 bmpOut = new Bitmap(Size, Size); Graphics g = Graphics.FromImage(bmpOut); g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; g.FillRectangle(Brushes.White, 0, 0, Size, Size); int topBottomPadding = 0; int leftRightPadding = 0; if (Size > lnNewWidth + 1) leftRightPadding = Convert.ToInt32((Size – lnNewWidth) / 2); else if (Size > lnNewHeight + 1) topBottomPadding = Convert.ToInt32((Size […]

C#WPF从exe文件夹中加载图像

我想将我的程序从PC移动到另一个,但问题是图像没有加载到任何其他PC(源问题)。 所以我想知道我是否可以创建一个放置exe的文件夹,并将其命名为Resources并从那里加载每个图像。 image2.Source = new BitmapImage(new Uri(@”Res\startoh.png”));