草庐IT

透明性

全部标签

c++ - CMFCMenuBar 一种 CMFCToolBar 的透明度

我想让MFC中的工具栏(CMFCToolBar)显示透明,就像CMFCMenuBar的默认外观一样。我正在使用控件样式TBSTYLE_FLAT|TBSTYLE_TRANSPARENT在创建工具栏时获取透明背景。但是,我仍然有顶部和底部边框,抓手也保持不变。SetBorders(0,0,0,0)或删除样式CBRS_BORDER_TOP|CBRS_BORDER_BOTTOM不会成功。并且使用CCS_NODIVIDER(明显移除2px顶部边框)也没有效果。我可以想象自定义CMFCVisualManager类可能是可行的方法(例如,使用CMFCVisualManager::OnFillBarB

c++ - Direct2D - 模拟颜色键控透明位图

我目前正在更新WindowsGDI应用程序以使用Direct2D渲染,我需要通过颜色键控支持“透明”位图以实现向后兼容性。现在我正在使用HWND渲染目标和转换后的WIC位图源(到GUID_WICPixelFormat32bppPBGRA)。到目前为止,我的计划是从转换后的位图创建一个IWICBitmap,Lock()它,然后处理每个像素,如果它与颜色键匹配,则将其alpha值设置为0。这似乎有点“蛮力”——这是解决这个问题的最佳方法还是有更好的方法?编辑:为了完整起见,这里摘录了我所使用的内容-看起来工作正常,但我愿意接受任何改进!//pConvertedBmpcontainsaIWI

c++ - 如何在opencv中读取具有透明像素的tif图像

我有一个具有透明像素的tif图像(我可以在paint.net中看到它们作为透明像素)。我正在尝试将它们读入openCV中的Mat中,我正在使用以下代码:Matimage=imread(imagePathname,CV_LOAD_IMAGE_UNCHANGED);autox=image.channels();根据我的理解,由于输入图像具有透明度,channels()应该返回4,但它返回3。如何在opencv中读取具有透明像素的tif图像并检查像素是否透明?编辑1运行imagemagick的结果:Image:layer0003.tifFormat:TIFF(TaggedImageFileF

c++ - QT 事件透明度仅适用于部分小部件

本软件显示3个widget:主窗口内容小部件,覆盖大部分主窗口自定义小部件,覆盖主窗口和内容小部件的一部分。自定义小部件有一部分(定义为QRect)需要Event-opaque,而周围区域必须是Event-transparent。我试过:setAttribute(Qt::WA_TransparentForMouseEvents);但是自定义的所有子部件也变得透明。我也尝试过setMask,但是自定义小部件无法在周围区域绘制。如何实现这种部分事件透明?示例(它没有解释完整的问题,只是添加了一个测试解决方案的基础):主要.cpp#include"transparentwidget.hpp"

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

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

c++ - 透明的频谱图选择叠加

我正在尝试在频谱图上创建透明的选择叠加层,但效果不佳。我的意思是结果不是很令人满意。相比之下,绘制在波形顶部的叠加效果很好,但我需要同时支持波形和频谱图View(以及future可能的其他View)选择覆盖在波形View中工作正常这是频谱图View中的选择叠加层(选择看起来很糟糕,遮住了部分频谱图)两个View的代码(VCL)相同voidTWaveDisplayContainer::DrawSelectedRegion(){if(selRange.selStart.x==selRange.selEnd.x){DrawCursorPosition(selRange.selStart.x)

Swift自定义饼图 - 从多个Uibezierpaths削减透明圆圈的奇怪行为

使用Swift创建自定义的饼图/甜甜圈样式图,并在尝试将孔从甜甜圈中切出来时遇到一个奇怪的问题。我尝试了第二个UibezierPath的中心和半径上的变化,但是我无法从中心完成一个干净的切口孔。任何帮助将不胜感激。Uiview的子类:importUIKitpublicclassDoughnutView:UIView{publicvardata:[Float]?{didSet{setNeedsDisplay()}}publicvarcolors:[UIColor]?{didSet{setNeedsDisplay()}}@IBInspectablepublicvarspacerWidth:CGFl

c++ - 如何在 Direct2D 中创建透明位图

我需要使用Direct2D创建透明位图并使用我的设备上下文在其上绘制。ID2D1DeviceContext1*d2dContext=...ID2D1Bitmap*pBitmap;d2dContext->CreateBitmap(bitmapSize,nullptr,0,D2D1::BitmapProperties1(D2D1_BITMAP_OPTIONS_TARGET,D2D1::PixelFormat(DXGI_FORMAT_B8G8R8A8_UNORM,D2D1_ALPHA_MODE_PREMULTIPLIED),dpiX,dpiY),&pBitmap);d2dContext->B

c++ - Mac OS X 上的透明 QWebView

我正在尝试在内容具有圆角的地方显示QWebView,因此我需要透明背景以隐藏原始的白色角。我正在使用我发现的“技巧”here这对我不起作用,所以我添加了this->view.setAttribute(Qt::WA_TranslucentBackground);现在它可以在Linux(Ubuntu)和Windows上正常工作,但不能在MacOSX上正常工作。MacOSX只是一直显示黑角。我试过这样设置样式表this->view.setStyleSheet("background:transparent;");或this->view.setStyleSheet("background-co

c++ - 开罗的 Alpha 透明度

我在使用GTK和Cairo显示alpha透明度时遇到问题。我尝试显示此图像1如果我对自己进行alpha混合,一切正常。如果我将alpha值直接传递给Cairo,阴影似乎渲染良好,但发光效果已损坏。这是Cairo1.14.2中的错误,还是我遗漏了什么?//NeeddeprecatedAPItogetbackgroundcolorGdkColorcolor=gtk_widget_get_style(widget)->bg[GTK_STATE_NORMAL];Pixelcolor_blend{uint8_t(255*color.red/65535.0f),uint8_t(255*color.