Tag: gdi +

.NET中的彩色图像量化

我想减少c#中位图的唯一颜色数量。 我想这样做的原因是,最初使用三种颜色但由于许多因素(包括压缩)而创建的图像现在具有三种以上的颜色(即相邻像素相互影响) 知道如何做到这一点? 解决方案可能是将整个位图从RGB转换为索引颜色系统或某些可应用于单个像素的函数。 任何GDI +或Emgu(opencv)解决方案对我都有好处。

如何使drawLine更顺畅?

我使用以下代码绘制线条: Graphics g = this.CreateGraphics(); Pen p = new Pen(Color.Black,3); g.DrawLine(p,…); // … 为什么直线是锯齿形的,根本不是直的和光滑的。 我怎么能让它变得平直和顺畅?

Winforms ListView选择图?

是否有可能覆盖listview详细选择油漆? 看起来半透明的蓝色覆盖在项目上,就像在资源管理器窗口中一样。 我想在选择周围画一个轮廓来表示选择。 有什么办法吗? 赞赏的例子。

模拟时钟 – 在标签上绘制时钟臂

我正在使用WinForms创建一个时钟。 问题是时钟指针在我的面板/标签下面。 我试图在我的面板/标签上画手,但我没有成功。 我也尝试将我的面板/标签移到后面,将手移到前面,但也不能正常工作。 我也尝试过像panel_digital_Timer.Parent = pictureBox1制作透明面板的东西。 如何在我的面板/标签前移动时钟指针? public partial class Form1 : Form { private Bitmap bmp; private int angle = 0; private int counter_Time; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { pictureBox1.Paint += PictureBox1_Paint; bmp = Properties.Resources.Clock_Arm; //pictureBoxOverlay.BackColor = Color.Transparent; //// Change parent for overlay PictureBox… pictureBoxOverlay.Parent = […]

加载,保存,然后再次加载图像会抛出“GDI +中发生一般错误”

这似乎是臭名昭着的错误 。 我记得在不久的代码中得到了一段时间,但它回来了 ,报复,但有一些我似乎无法弄清楚的新代码。 当然,它绝对是generic ! 目标 我正在尝试构建一个允许用户执行以下操作的表单: 选择图像。 按save(关闭表单),并将图像保存到byte[]到数据库中。 打开表单(从byte[]加载图像)。 允许他们再次按保存。 允许他们再次打开表单,再次显示图像。 一个非常标准的加载/保存方案。 问题 关于加载和保存到SQL Server,一切正常。 我得到的问题是重复加载和保存到byte[]即使我使用相同的设置。 看一下我嘲笑的代码来演示这个问题: static void Main(string[] args) { // Load the image var initialImage = (Bitmap)Bitmap.FromFile(@”D:\picture.jpg”); // Save to a memory stream and get the bytes var initialImageBytes = SaveImageToBytes(initialImage); // Load again from this saved image Bitmap byteLoadedImage […]

如何将图像裁剪成圆圈?

我正在尝试将图像裁剪为圆形,圆形区域外面的区域为白色。 新的图像尺寸将与原始尺寸相同,只是有效地舍入图像。 我熟悉如何使用GDI +裁剪图像,通过拍摄现有图像并将其复制到新图像中来绘制矩形/正方形,但我看不到如何用白色填充圆弧/圆的外部。 这可能吗? 更新 – 我想做服务器端,因为不同的浏览器/平台不同地渲染css半径,或者根本不同 到目前为止我的工作是: public static Image CropCircle2(Image imgSource) { Image imgTarget = new Bitmap(imgSource.Width, imgSource.Height); Graphics g = Graphics.FromImage(imgTarget); var path = new System.Drawing.Drawing2D.GraphicsPath(); path.AddEllipse(0, 0, imgTarget.Width, imgTarget.Height); g.SetClip(path); g.DrawImage(imgSource, 0, 0); return imgTarget; }

TextBox是使用GDI还是GDI +

基本上,我想测量TextBox中的文本大小,我发现TextRenderer给了我正确的值,而Graphics会给我错误的值。 所以看起来TextBox应该使用GDI来绘制文本,对吧? 但是,无论我在哪里阅读,我都会看到它应该使用GDI +。 例如: 这里http://microsoft.public.dotnet.framework.windowsforms.controls.narkive.com/yoHKjPut/text-rendering-accuracy-problem-in-textbox-richtextbox它说TextBox和Buttons使用GDI +。 这里为什么Graphics.MeasureString()返回高于预期的数字? 它说默认是“兼容模式”,它吸引了GDI + 那么为什么我在使用TextRenderer时会得到一致的结果而不是图形呢?当它应该是另外一种方式时?

GDI +:如何在背景线程上将Graphics对象渲染为位图?

我想使用GDI +在后台线程上渲染图像。 我找到了关于如何使用GDI +旋转图像的这个例子 ,这是我想做的操作。 private void RotationMenu_Click(object sender, System.EventArgs e) { Graphics g = this.CreateGraphics(); g.Clear(this.BackColor); Bitmap curBitmap = new Bitmap(@”roses.jpg”); g.DrawImage(curBitmap, 0, 0, 200, 200); // Create a Matrix object, call its Rotate method, // and set it as Graphics.Transform Matrix X = new Matrix(); X.Rotate(30); g.Transform = X; // Draw image g.DrawImage(curBitmap, […]

如何在WinForm中使用GraphicsPath绘制圆形进度条饼?

我想在WinForm中使用自定义循环进度条。 但结果不符合我的想法。 如何在这张图片中绘制相同的形状? 我上传了两张图片,以清楚我的问题。 我的代码是这样做的: void Form1_Paint(object sender, PaintEventArgs e) { int angle = 120; e.Graphics.SmoothingMode = SmoothingMode.HighQuality; Rectangle outerRect = new Rectangle(50, 50, 100, 100); Rectangle innerRect = new Rectangle(70, 70, 60, 60); int innerRadius = innerRect.Width / 2; int outerRadius = outerRect.Width / 2; Point innerCenter = new Point(innerRect.X + innerRadius, innerRect.Y + […]

用渐变色绘制线条

是否可以使用渐变色绘制线条? 我希望能够绘制直线或曲线(如果可能),在该线的一端是蓝色,另一端是红色。 此外,可能需要每行有多个渐变,例如颜色来自蓝色 – >绿色 – >红色。 我想这可能只是由多个渐变线组成。