Tag: alphablending

在XNA中对网格进行排序

我在XNA中遇到树问题。 当我有树时,我需要使用alpha混合来使非叶部分透明,但模型的某些部分未正确显示,因此alpha混合失败。 我想知道是否有可能读取网格位置来对它们进行排序,或者是否有其他方法可以获得透明的非叶子部分。 模型中的排序可能不起作用,因为我想从各个角度看这棵树。

使用Alpha混合白色背景将ARBG转换为RGB

我有一个颜色hex字符串存储在数据库中,如0x78dce6b0 ; 我可以使用以下方法将其转换为ARGB颜色: string colorString=0x78dce6b0; int hexColor = Convert.ToInt32(colorString ?? “0”, 16); Color colorTL = Color.FromArgb(hexColor); 现在我想将其转换为在HTML页面中使用,因此我需要转换为像#cc3388这样的HTML值。 如果我使用ColorTranslator.ToHtml(colorTL)直接转换,我会丢失alpha混合值。 假设背景总是白色,我如何通过考虑alpha值来转换它?

如何将PNG透明化为GDI32(在c#中)以与alphaBlend一起使用?

我正在尝试在c#中编写一个快速透明度类。 如何将PNG透明化为GDI32以将其与alphaBlend一起使用? 我试图通过getHbitmap / selectObject直接把它,试图用临时DC上的setPixel绘制它,但都无济于事。

覆盖两个或多个位图以在Picturebox中显示(C#)

在我的C#程序中,我有一个Picturebox,我想在其中显示video流(连续帧)。 我收到原始数据,然后我转换为Bitmap或Image。 我可以一次显示一个图像而没有问题(重现video流)。 现在我的问题是我想合并两个或更多具有相同大小和alpha值(ARGB)的位图(如图层)并在图片框上显示它 。 我在SO上阅读了很多网站和post,但很多人使用的是Graphics类,我只是无法在我的应用程序上绘制它(很可能是因为我是C#的新手!并且已经安装了我的程序,所以我不想改变结构)。 我需要(知道): 如何使用alpha值覆盖两个或多个位图; 请不要像素操纵,不能承受性能成本。 非常感谢你提前! 注意:我认为这个问题不应该被标记(或关闭)为重复,因为我在SO中找到的所有内容都是通过像素操作或通过Graphics类完成的。 (但我可能错了!) 编辑:可能的解决方法(不是问题的解决方案 ) 在PictureBox问题中 ,第4个答案(来自用户来自)告诉我有2个picturebox,一个在另一个之上。 我必须做的唯一(额外)事情是使它与这种方法一起工作: private void Form1_Load(object sender, EventArgs e) { pictureBox2.Parent = pictureBox1; } 哪个pictureBox2将是顶部的那个。 我不会认为这是这个问题的答案,因为我认为这是一种解决方法(特别是因为有超过10个图片盒似乎不太理想!哈哈)。 这就是为什么我会打开这个问题等待我的问题的真正答案。 编辑:已解决! 检查我的答案。

Windows窗体:使光标位图部分透明

我想在拖放操作中使用部分透明的图像。 这一切都已设置并且工作正常,但实际转换为透明度有一个奇怪的副作用。 出于某种原因,像素似乎与黑色背景混合。 下图描述了该问题: 图a)是原始位图。 图b)是在执行α混合之后产生的。 显然,这比预期的50%α滤镜要暗很多。 图c)是所需的效果,图像a)具有50%的透明度(用绘图程序添加到组合物中)。 我用来生成trasparent图像的代码如下: Bitmap bmpNew = new Bitmap(bmpOriginal.Width, bmpOriginal.Height); Graphics g = Graphics.FromImage(bmpNew); // Making the bitmap 50% transparent: float[][] ptsArray ={ new float[] {1, 0, 0, 0, 0}, // Red new float[] {0, 1, 0, 0, 0}, // Green new float[] {0, 0, 1, 0, 0}, // Blue […]

透明位图上的抗锯齿文本

我想在透明位图上绘制抗锯齿文本,并将抗锯齿绘制为alpha混合像素。 这样,我可以将位图绘制到任何颜色表面(或图像,就此而言),并且抗锯齿仍然看起来很好。 以下是显示问题的简化示例: protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); Bitmap bitmap = new Bitmap(this.Width, this.Height); Graphics g = Graphics.FromImage(bitmap); g.Clear(Color.Empty); g.DrawString(“hello world”, new Font(this.Font.FontFamily, 24), Brushes.Blue, new Point(50, 50)); e.Graphics.DrawImage(bitmap, new Point(0, 0)); } 这是结果: alt text http://img194.imageshack.us/img194/9065/captureotd.png 最终目标是使用UpdateLayeredWindow绘制我的透明alpha混合窗口。 我正在创建一个类似Conky的应用程序,我希望能够使用ClearType渲染文本(当然,这很容易,没有抗锯齿)。 目前,我抓住表单后面的屏幕,绘制它,然后绘制我的文本。 它看起来不错,但必须更新并且绘制缓慢。 在桌面上完成绘图文本的任何其他想法也将受到欢迎。