`
philip01
  • 浏览: 47120 次
  • 来自: ...
社区版块
存档分类
最新评论

把图片背景[白色]设置透明

阅读更多

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里面如何设置插入的图片背景色为透明.docx

    本文将详细介绍两种在InTouch中实现图片背景透明的方法。 #### 方法一:通过ArchestrA图符编辑器插入PNG格式图片 这种方法适用于InTouch 2014R2及更高版本。 1. **创建新型InTouch应用程序** 在InTouch应用程序...

    Qt 设置图片透明色显示的效果

    在Qt中,我们通常使用QLabel来显示图片,并设置其背景透明。这需要开启QLabel的窗口旗标`Qt::WA_TranslucentBackground`。 ```cpp QLabel label; label.setPixmap(pixmap); label.setAttribute(Qt::WA_...

    MATLAB.zip_change color_matlab图片背景_matlab改图片为透明_motherib9_图片透明ma

    在MATLAB中,修改图片背景颜色或将其转换为透明是一个常见的图像处理任务,这在创建图形用户界面(GUI)或进行图像合成时尤其有用。这个名为"MATLAB.zip_change color_matlab图片背景_matlab改图片为透明_motherib9_...

    VC绘制bmp图设置背景透明

    以下是一个简单的例子,X轴和Y轴的BMP图片重叠时,由于X轴图片的背景未设为透明,所以被Y轴图片遮挡,造成左下角的X轴图片部分不可见。 为了实现透明效果,我们需要使用`TransparentBlt()`函数。这是一个Windows ...

    C#图片半透明、完全透明及指定颜色透明

    如果希望将图片中特定颜色设置为透明,我们可以先找出该颜色的所有像素,然后设置它们的alpha通道为0。以下是一个简单的方法,但可能性能不佳,因为遍历所有像素可能会比较慢。 ```csharp using System.Drawing;...

    简单去除图片的白色背景

    在图像处理领域,去除图片的白色背景是一项常见的任务,尤其对于设计、排版或网络应用来说,透明背景的图片能够提供更高的灵活性。本教程将详细解释如何使用一款名为"delBackground"的小型软件来实现这一目标,以及...

    整理的loading gif图片一组,背景透明

    在网页设计中,透明背景使得加载图标能够无缝融入各种颜色的背景中,无论是在白色、黑色还是其他颜色的主题下,都能保持良好的视觉效果。这种透明特性是由GIF图像格式支持的多帧透明度设置所实现的。 GIF(Graphics...

    如何处理图片背景为透明色

    NULL 博文链接:https://abc-xiaonan.iteye.com/blog/2369110

    JAVA处理图片 加文字水印以及灰色透明背景

    JAVA处理图片 加文字水印以及灰色透明背景,处理图片。

    WPF中使jpg,bmp图片背景透明的方法

    ### WPF中使jpg,bmp图片背景透明的方法 #### 概述 Windows Presentation Foundation (WPF) 是由微软推出的一款强大的图形系统,该系统运行在.NET Framework 3.0架构下,为用户界面、2D/3D图形、文档和多媒体提供了...

    .NET去除图片白底,转换为透明色

    在.NET开发环境中,有时我们需要处理图像,特别是去除图片的白底,将其转换为透明色,以便于背景融合或实现特定的视觉效果。本教程将详细讲解如何使用.NET框架中的图像处理技术来实现这一目标。 首先,我们需要理解...

    164个loading图片gif格式-透明背景

    本文将详细探讨“164个loading图片gif格式-透明背景”这一资源包中的相关知识点,以及它们在网页设计和开发中的应用。 首先,我们要理解什么是loading动画。在用户请求数据或页面内容加载时,加载动画作为视觉反馈...

    gif透明背景loading图片大全.zip

    2. **透明性**:GIF支持最多256色的调色板,并且可以设置一个颜色为透明,这样图片就可以与任何背景融合。 3. **无损压缩**:GIF使用LZW(Lempel-Ziv-Welch)无损压缩算法,这保证了原始图像质量不会因压缩而损失。 ...

    VB TEXT透明 显示背景图片

    文本框通常用于输入或显示文本,而将其设置为透明则可以让背景图片透过文本框显示,创造出更丰富的视觉效果。以下将详细讲解如何在VB中实现TEXT透明以及显示背景图片的知识点。 首先,我们要理解VB中的透明度概念。...

    winform C# 将图片转成透明背景的png 源代码

    在.NET框架下,WinForm应用开发中,C#语言提供了丰富的功能来处理图像,包括将图片转换为具有透明背景的PNG格式。这篇文章将详细介绍如何利用C#和Visual Studio 2008(或更高版本)实现这个功能。首先,我们需要理解...

    delphi tchart 透明背景

    将AlphaValue 设置为小于255的值,可以实现背景的透明效果。 2. **自定义画布**:如果需要更高级的透明效果,比如只让图表内部区域透明,而保留边框,可以通过覆写OnPaint 方法并使用Canvas 对象进行绘制。通过...

    PHP创建透明背景图片

    在PHP中创建具有透明背景的图片是一项常见的任务,特别是在网页设计和动态图像处理中。`imagecreatetruecolor`函数是实现这一目标的关键工具。这个函数允许开发者创建一个真彩色图像资源,支持24位RGB颜色和透明度。...

    c#vb.net中DataGridView透明表格半透明支持背景图

    在一些高级的用户界面设计中,可能会有需求将`DataGridView`设置为半透明或透明,同时支持自定义背景图片,以提供更加美观且个性化的用户体验。以下就是关于如何实现这一功能的详细解释。 首先,我们要理解透明度的...

    Qt 控件透明度设置方法总结

    在这里,`rgba(255, 255, 255, 0)`表示完全透明的白色背景。 4. **对于子控件的透明度:** 如果你希望子控件具有不同的透明度,可以直接在子控件上应用上述方法,或者使用父控件的`setWindowOpacity`方法,这会...

    OpenCV技巧_ 常用格式圖片保存為透明背景圖片(附Python源碼)-教你輕鬆製作Logo1

    如果图片背景较复杂,可以使用更复杂的算法,如色彩阈值、边缘检测或其他图像处理技术,以更精确地识别要保留的区域。 总的来说,通过OpenCV,我们可以轻松地将图片的特定部分设置为透明,从而创建出具有透明背景的...

Global site tag (gtag.js) - Google Analytics