package com.goldgrid.socket.client;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import org.apache.log4j.Logger;
public class Alpha {
protected static Logger logger = Logger.getLogger(ClientSocket.class);
public byte[] transferAlpha(Image image) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
try {
ImageIcon imageIcon = new ImageIcon(image);
BufferedImage bufferedImage = new BufferedImage(imageIcon
.getIconWidth(), imageIcon.getIconHeight(),
BufferedImage.TYPE_4BYTE_ABGR);
Graphics2D g2D = (Graphics2D) bufferedImage.getGraphics();
g2D.drawImage(imageIcon.getImage(), 0, 0, imageIcon
.getImageObserver());
int alpha = 0;
for (int j1 = bufferedImage.getMinY(); j1 < bufferedImage
.getHeight(); j1++) {
for (int j2 = bufferedImage.getMinX(); j2 < bufferedImage
.getWidth(); j2++) {
int rgb = bufferedImage.getRGB(j2, j1);
int R =(rgb & 0xff0000 ) >> 16 ;
int G= (rgb & 0xff00 ) >> 8 ;
int B= (rgb & 0xff );
if(((255-R)<30) && ((255-G)<30) && ((255-B)<30)){
rgb = ((alpha + 1) << 24) | (rgb & 0x00ffffff);
}
bufferedImage.setRGB(j2, j1, rgb);
}
}
g2D.drawImage(bufferedImage, 0, 0, imageIcon.getImageObserver());
//ImageIO.write(bufferedImage, "png", new File("d:/test.png.png"));
ImageIO.write(bufferedImage, "png", byteArrayOutputStream);
} catch (Exception e) {
logger.error(e.toString());
}finally{
}
return byteArrayOutputStream.toByteArray();
}
}
分享到:
相关推荐
本文将详细介绍两种在InTouch中实现图片背景透明的方法。 #### 方法一:通过ArchestrA图符编辑器插入PNG格式图片 这种方法适用于InTouch 2014R2及更高版本。 1. **创建新型InTouch应用程序** 在InTouch应用程序...
在Qt中,我们通常使用QLabel来显示图片,并设置其背景透明。这需要开启QLabel的窗口旗标`Qt::WA_TranslucentBackground`。 ```cpp QLabel label; label.setPixmap(pixmap); label.setAttribute(Qt::WA_...
在MATLAB中,修改图片背景颜色或将其转换为透明是一个常见的图像处理任务,这在创建图形用户界面(GUI)或进行图像合成时尤其有用。这个名为"MATLAB.zip_change color_matlab图片背景_matlab改图片为透明_motherib9_...
以下是一个简单的例子,X轴和Y轴的BMP图片重叠时,由于X轴图片的背景未设为透明,所以被Y轴图片遮挡,造成左下角的X轴图片部分不可见。 为了实现透明效果,我们需要使用`TransparentBlt()`函数。这是一个Windows ...
如果希望将图片中特定颜色设置为透明,我们可以先找出该颜色的所有像素,然后设置它们的alpha通道为0。以下是一个简单的方法,但可能性能不佳,因为遍历所有像素可能会比较慢。 ```csharp using System.Drawing;...
在图像处理领域,去除图片的白色背景是一项常见的任务,尤其对于设计、排版或网络应用来说,透明背景的图片能够提供更高的灵活性。本教程将详细解释如何使用一款名为"delBackground"的小型软件来实现这一目标,以及...
在网页设计中,透明背景使得加载图标能够无缝融入各种颜色的背景中,无论是在白色、黑色还是其他颜色的主题下,都能保持良好的视觉效果。这种透明特性是由GIF图像格式支持的多帧透明度设置所实现的。 GIF(Graphics...
NULL 博文链接:https://abc-xiaonan.iteye.com/blog/2369110
JAVA处理图片 加文字水印以及灰色透明背景,处理图片。
### WPF中使jpg,bmp图片背景透明的方法 #### 概述 Windows Presentation Foundation (WPF) 是由微软推出的一款强大的图形系统,该系统运行在.NET Framework 3.0架构下,为用户界面、2D/3D图形、文档和多媒体提供了...
在.NET开发环境中,有时我们需要处理图像,特别是去除图片的白底,将其转换为透明色,以便于背景融合或实现特定的视觉效果。本教程将详细讲解如何使用.NET框架中的图像处理技术来实现这一目标。 首先,我们需要理解...
本文将详细探讨“164个loading图片gif格式-透明背景”这一资源包中的相关知识点,以及它们在网页设计和开发中的应用。 首先,我们要理解什么是loading动画。在用户请求数据或页面内容加载时,加载动画作为视觉反馈...
2. **透明性**:GIF支持最多256色的调色板,并且可以设置一个颜色为透明,这样图片就可以与任何背景融合。 3. **无损压缩**:GIF使用LZW(Lempel-Ziv-Welch)无损压缩算法,这保证了原始图像质量不会因压缩而损失。 ...
文本框通常用于输入或显示文本,而将其设置为透明则可以让背景图片透过文本框显示,创造出更丰富的视觉效果。以下将详细讲解如何在VB中实现TEXT透明以及显示背景图片的知识点。 首先,我们要理解VB中的透明度概念。...
在.NET框架下,WinForm应用开发中,C#语言提供了丰富的功能来处理图像,包括将图片转换为具有透明背景的PNG格式。这篇文章将详细介绍如何利用C#和Visual Studio 2008(或更高版本)实现这个功能。首先,我们需要理解...
将AlphaValue 设置为小于255的值,可以实现背景的透明效果。 2. **自定义画布**:如果需要更高级的透明效果,比如只让图表内部区域透明,而保留边框,可以通过覆写OnPaint 方法并使用Canvas 对象进行绘制。通过...
在PHP中创建具有透明背景的图片是一项常见的任务,特别是在网页设计和动态图像处理中。`imagecreatetruecolor`函数是实现这一目标的关键工具。这个函数允许开发者创建一个真彩色图像资源,支持24位RGB颜色和透明度。...
在一些高级的用户界面设计中,可能会有需求将`DataGridView`设置为半透明或透明,同时支持自定义背景图片,以提供更加美观且个性化的用户体验。以下就是关于如何实现这一功能的详细解释。 首先,我们要理解透明度的...
在这里,`rgba(255, 255, 255, 0)`表示完全透明的白色背景。 4. **对于子控件的透明度:** 如果你希望子控件具有不同的透明度,可以直接在子控件上应用上述方法,或者使用父控件的`setWindowOpacity`方法,这会...
如果图片背景较复杂,可以使用更复杂的算法,如色彩阈值、边缘检测或其他图像处理技术,以更精确地识别要保留的区域。 总的来说,通过OpenCV,我们可以轻松地将图片的特定部分设置为透明,从而创建出具有透明背景的...