jjzjj

alphablending

全部标签

c# - 使用 C# 在 Windows Mobile 中加载简单的半透明 PNG

我是WindowsMobile编程的新手。我想加载一个具有Alphachannel的PNG文件。在互联网上搜索了2天后,我仍然在1号广场。有人可以帮助我吗?我得到了一个使用包装器访问AlphaBlendAPI的示例。但是当我在BlendingFunction中设置AC_SRC_ALPHA标志时,它不会绘制任何东西。 最佳答案 我用过WindowslessControlslibraryfromKoushikDutta使用带有alphachannel的PNG并且发现它很棒。您可能还想看看AlphaMobileControls.

c++ - 带有 alpha channel 的闪烁子窗口

当绘制包含带逐像素alphachannel的位图的子控件时,每当需要重新绘制它们时,我们会遇到很多闪烁。实际混合工作正常。我找到了很多关于减少闪烁的信息(例如thisquestion或thissite),但我似乎找不到任何专门适用于这种情况的信息。例如,我有一个带有几个不同位图的按钮,这些位图根据按钮的状态进行了alpha混合并blit到窗口。当它们的状态发生变化并且我需要绘制不同的位图时,我需要先重新绘制背景,否则它会与前一个状态位图遗留下来的像素混合。这就是我出现闪烁的地方,偶尔会有一些背景撕裂。让顶层父窗口绘制位图背景而不是纯色,以及子控件重叠的可能性,使问题变得更加复杂;仅仅将

c# - .NET 中的热图样式渐变

我正在尝试创建一个具有类似于此的渐变的热图:这张图片显示了三个点,渐变很好地融合在一起。这是我目前在绘图功能中所做的:publicvoidDrawGradient(intx,inty,Graphicsg){using(varellipsePath=newGraphicsPath()){varbounds=newRectangle(x,y,100,100);ellipsePath.AddEllipse(bounds);varbrush=newPathGradientBrush(ellipsePath);Color[]colors={Color.FromArgb(64,0,0,255),C

php - 在 PHP 中合并两个带有透明胶片的图像

我正在尝试通过php制作几个具有背景透明度的.png的合成图像,并将生成的图像存储在我的数据库中。我的问题是当我合并图像时图像的透明部分被丢弃。这是我创建合成图像的代码:$base=imagecreatefrompng('application/assets/images/vel1_bg.png');imagealphablending($base,true);list($baseWidth,$baseHeight,$type,$attr)=getimagesize('application/assets/images/vel1_bg.png');$user_board_items=$

c++ - SDL2 - 在纹理上绘制完全透明的圆圈

我正在使用SDL2.0开发一款2D游戏,但我的光照系统出现了问题。我想用雾填充屏幕并在播放器周围创建一个透明圆圈(左下角)。我知道如何使用SDL_BLENDMODE_MOD(右下角)用有色光制作暗室,但我无法制作雾。我已经尝试使用我能想到的SDL_SetRenderDrawBlendMode()和SDL_SetTextureBlendMode()的每种组合在屏幕上分层多个纹理。我在StackOverflow上搜索并找到了解决方案,例如this,但他们使用SDL表面和预制光图像。我将动态更改输入图像(右上角)的形状和大小,因此我需要更灵活的东西。解决方案1:我没有使用白色圆圈和黑色背景,

c++ - iPhone OpenGL ES 不正确的 alpha 混合

我在iPhone上使用openGLES时遇到错误的alpha混合结果问题。这是我创建纹理对象的代码:glGenTextures(1,&tex_name);glBindTexture(GL_TEXTURE_2D,tex_name);glTextImage2D(GL_TEXTURE_2D,0,GL_RGBA,tex_width,tex_height,GL_RGBA,GL_UNSIGNED_BYTE,tex_data);'tex_data'是从用zlib打包的原始RGBA8888数据加载的。它按应有的方式加载,我已经用调试器检查过了。这是我在渲染前设置纹理的代码:glEnable(GL_BL

c++ - 使用 AlphaBlend 绘制略透明的矩形失败

我试图在nativeWin32C++中绘制一个稍微透明的蓝色矩形。我正在使用函数AlphaBlend()但它没有在窗口上绘制任何东西,没有任何反应。我的问题:当我运行我的函数来绘制一个稍微透明的矩形时,它没有显示在我的窗口中。我觉得我做错了,也许我应该使用HBITMAP?你能告诉我我需要做什么才能让我的函数在窗口上绘制一个稍微透明的矩形吗?我也知道GDI+,但我现在想避免使用它,因为我在使用该库时遇到很多编译/包含错误,而且我想在没有帮助的情况下尽可能低/原生为我做一切的图书馆。boolpaintRect(HDChdc,RECTdim,COLORREFpenCol,COLORREFbr

c++ - OpenGL 混合在纹理周围创建白色边框

我正在尝试使用OpenGL(C++)将两个纹理渲染到一个矩形上。不过,我在混合这两者时遇到了一些麻烦。第一张图片来自.jpg文件(https://learnopengl.com/img/textures/container.jpg)。此图像没有alphachannel。第二张图片来自.png文件(https://learnopengl.com/img/textures/awesomeface.png),并且确实有一个alphachannel。问题是当我尝试混合两个图像时,它会在透明图像周围创建一个白色边框。我尝试了几种不同的混合模式(正如OP在这个问题中所推荐的:Alphablendi

ios - 在不混合的情况下使不透明的 UIView 变暗

我的应用程序的背景是一个不透明的UIImageView。在某些情况下,我想以动画方式将它从全亮度调暗到大约50%。目前我降低了View的alpha属性并且效果很好。因为View后面没有任何东西,所以背景图像会变暗。但是,我一直在使用CoreAnimationInstrument进行分析,当我这样做时,我看到整个背景显示为混合。如果可能的话,我想避免这种情况。在我看来,这在合成过程中是可以实现的。如果View是不透明的,则可以将黑色与黑色混合,而不会显示任何背后的东西。不需要混合它,只需调整像素值即可。我想知道这是否是UIKit的GPU合成所支持的东西。虽然混合不是很好,但它可能比在CP

opengl-es - 为什么 OpenGL 混合在 HTC Desire 上不起作用?

有谁知道如何在HTCDesire上启用OpenGL(android)中的混合。我正在尝试绘制彩色三角形并使用颜色缓冲区的alpha值将它们与背景(或另一个三角形)混合。它既适用于模拟器(2.1)也适用于htchero2.1,但不适用于2.2。导致这种情况的英雄和愿望之间是否存在某种硬件差异?代码中的主要内容是(不按顺序):gl.glClear(GL10.GL_COLOR_BUFFER_BIT|GL10.GL_DEPTH_BUFFER_BIT);gl.glEnable(GL10.GL_BLEND);gl.glBlendFunc(GL10.GL_SRC_ALPHA,GL10.GL_ONE_
12