我正在尝试使用Java创建一个覆盖整个屏幕的全屏窗口。此窗口还必须具有一定的透明度(大约30%-50%的透明度)。当说整个屏幕时,我的意思是它涵盖了所有内容(包括OSX/Linux/Windows中的停靠栏/任务栏/菜单栏),而当我说透明度时,我的意思是实时透明度,而不仅仅是被黑的屏幕截图。这是我知道/尝试过的:使用Java全屏API:虽然它创建了一个真正的全屏,但您不能使用它来实现某些透明度(只有不透明的颜色)。一种hack是截取整个桌面的屏幕截图并将其设置为窗口的背景,但这意味着它不是实时透明的。设置窗口大小以匹配屏幕尺寸:当它填满整个屏幕时,在某些操作系统(例如MacOSX)中,
我目前正在开发一个kiosk风格的Java程序来显示天气、时间、预报等。这是程序应该的样子的截图(时间更新前的截图)各个部分被创建为JPanel,并覆盖了paintComponent()方法。他们绘制渐变标题和半透明背景。但是,当我更改其中一个面板的内容时,以前的内容会保留下来,而不是被删除。示例如下:可以看到,当时间从11:51变为11:52时,数字重叠了,背景变浅了(因为重绘了半透明背景)图形错误我应该怎么做才能防止这种重叠?最终,我宁愿在单个面板更新其内容时不必重绘整个屏幕。我宁愿只重画那个特定的部分。重新绘制背景很容易,然后再绘制其中的所有组件。更新有几个答案涉及清除要绘制的区
JDK7添加了一个新的透明度slider到JColorChooser:问题是我不想让我的用户选择透明颜色。不幸的是,似乎没有一种简单的方法来禁用slider。消除透明度的一种方法是仅根据所选颜色创建一种新颜色,但删除alpha值。然而,这会给用户一种错误的印象,因为slider现在实际上什么都不做,我不希望周围有一个无用的UI元素。所以我的问题是,摆脱透明度slider的最佳方法是什么?P.S.:IMO,他们只是添加slider并将其设为默认行为,这很奇怪。这可能会导致JDK6程序中出现很多错误,这些错误不期望颜色选择器返回具有alpha值的颜色。 最佳答案
我将使用BufferedImage的getRGB方法。我想检查图像的像素并查看其中哪些像素具有透明度(通常我将拥有的透明像素将完全透明)。如何从getRGB返回的int中获取它? 最佳答案 BufferedImageimg=....publicbooleanisTransparent(intx,inty){intpixel=img.getRGB(x,y);if((pixel>>24)==0x00){returntrue;}returnfalse;}当然img必须采用正确的格式TYPE_4BYTE_ABGR或某种支持alphachan
好吧,我正在制作游戏,我正在尝试通过在其上添加文本来修改原始命中标记图像,我正在使用以下代码:importjavax.swing.ImageIcon;importjavax.swing.Timer;importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics2D;importjava.awt.Image;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.image.BufferedImage;publi
我想显示类似于java2s.com'Createalazyfiletree'的文件树,但包括实际的系统图标-特别是文件夹。SWT似乎没有提供这个(程序API不支持文件夹),所以我想到了以下内容:publicImagegetImage(Filefile){ImageIconsystemIcon=(ImageIcon)FileSystemView.getFileSystemView().getSystemIcon(file);java.awt.Imageimage=systemIcon.getImage();intwidth=image.getWidth(null);intheight=i
我正在尝试为网站创建横幅。出于搜索引擎优化的目的,我决定看看我是否可以创建横幅而不是导入图像。我取得了很好的进展,但出于某种原因,我的背景图像通过覆盖在其上的Logo显示。我将背景图像(在css中设置)设置为不透明度,因为我不想让它充满力量。我在上面放置了具有透明背景但没有不透明度的Logo。目标横幅位于:http://arielbalter.com/cio/我正在尝试的代码位于:http://jsfiddle.net/abalter/QzNpQ/***HTML*****checkitout!HomeInspection**CSS****header{border:3pxdoubleb
我目前正在更新WindowsGDI应用程序以使用Direct2D渲染,我需要通过颜色键控支持“透明”位图以实现向后兼容性。现在我正在使用HWND渲染目标和转换后的WIC位图源(到GUID_WICPixelFormat32bppPBGRA)。到目前为止,我的计划是从转换后的位图创建一个IWICBitmap,Lock()它,然后处理每个像素,如果它与颜色键匹配,则将其alpha值设置为0。这似乎有点“蛮力”——这是解决这个问题的最佳方法还是有更好的方法?编辑:为了完整起见,这里摘录了我所使用的内容-看起来工作正常,但我愿意接受任何改进!//pConvertedBmpcontainsaIWI
我有一个火灾模拟,包含大量带纹理的GL_POINTS。每个粒子都有一个透明的背景,当从特定角度面对火焰时,混合工作正常。然而,从其他角度查看它会显示背景,这些背景应该是透明的,遮挡了在其他人后面渲染的粒子。见下图。如您所见,粒子的路径上似乎有很多黑框。我怎样才能避免这种情况?我使用的混合函数是GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA。使用GL_ONE作为glBlendFunc的第二个参数给出非常相似的结果。 最佳答案 http://www.opengl-tutorial.org/intermediate
我正在尝试在频谱图上创建透明的选择叠加层,但效果不佳。我的意思是结果不是很令人满意。相比之下,绘制在波形顶部的叠加效果很好,但我需要同时支持波形和频谱图View(以及future可能的其他View)选择覆盖在波形View中工作正常这是频谱图View中的选择叠加层(选择看起来很糟糕,遮住了部分频谱图)两个View的代码(VCL)相同voidTWaveDisplayContainer::DrawSelectedRegion(){if(selRange.selStart.x==selRange.selEnd.x){DrawCursorPosition(selRange.selStart.x)