最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java png圖片修改像素rgba值的操作

 更新時(shí)間:2021年11月15日 09:48:28   作者:hello_world_j  
這篇文章主要介紹了Java png圖片修改像素rgba值的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Java png圖片修改像素rgba值

import javax.imageio.ImageIO; 
import javax.swing.ImageIcon;
import java.awt.*; 
import java.awt.image.BufferedImage;
import java.io.File; 
public class  ReadColorTest { 
    public static void setAlpha(String os) {
                try {
                  ImageIcon imageIcon = new ImageIcon(os);
                  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());
                  for (int j1 = bufferedImage.getMinY(); j1 < bufferedImage.getHeight(); j1++) {
                    for (int j2 = bufferedImage.getMinX(); j2 < bufferedImage.getWidth(); j2++) {
                      int pixel = bufferedImage.getRGB(j2, j1);//j2橫坐標(biāo),j1豎坐標(biāo)
                      int[]   rgb = new int[3];
                      rgb[0] = (pixel & 0x00ff0000) >> 16;//按位與獲取red然后右移
                      rgb[1] = (pixel & 0x0000ff00) >> 8;//..獲取green...
                      rgb[2] = (pixel & 0x000000ff);
                      int a=(pixel & 0xff000000)>>>24;//無符號(hào)右移獲取alpha值
                      if(comp(rgb[0],rgb[1],rgb[2])||a==0) {
                    	  pixel = pixel | 0xffffffff;//透明或偏向白色射為白色
                      }else {
                    	  pixel = (pixel & 0xff000000)| 0xff000000;//否則為黑色
                      }
                      bufferedImage.setRGB(j2, j1, pixel);
                    }
                    System.out.println();
                  }
                  g2D.drawImage(bufferedImage, 0, 0, imageIcon.getImageObserver());
                  ImageIO.write(bufferedImage, "png",  new File("D:\\2.png"));
                }
                catch (Exception e) {
                  e.printStackTrace();
                }
    }
    public static boolean comp(int r,int g,int b) {//判斷二值化為黑還是白,true為白,false為黑
    	int i = 0;
    	if(r>200) {
    		i++;
    	}
    	if(g>200) {
    		i++;
    	}
    	if(b>200) {
    		i++;
    	}
    	if(i>=2) {
    		return true;
    	}else {
    		return false;
    	}
    }
       
    public static void main(String[] args) throws Exception { 
        setAlpha("H:\\Test\\3.png");  
    } 
}

ARGB與RGB、RGBA的區(qū)別

  • ARGB 是一種色彩模式,也就是RGB色彩模式附加上Alpha(透明度)通道,常見于32位位圖的存儲(chǔ)結(jié)構(gòu)。
  • RGB 色彩模式是工業(yè)界的一種顏色標(biāo)準(zhǔn),是通過對(duì)紅(R)、綠(G)、藍(lán)(B)三個(gè)顏色通道的變化以及它們相互之間的疊加來得到各式各樣的顏色的,RGB即是代表紅、綠、藍(lán)三個(gè)通道的顏色,這個(gè)標(biāo)準(zhǔn)幾乎包括了人類視力所能感知的所有顏色,是目前運(yùn)用最廣的顏色系統(tǒng)之一。
  • RGBA 是代表Red(紅色) Green(綠色) Blue(藍(lán)色)和 Alpha的色彩空間。雖然它有的時(shí)候被描述為一個(gè)顏色空間,但是它其實(shí)僅僅是RGB模型的附加了額外的信息。采用的顏色是RGB,可以屬于任何一種RGB顏色空間,但是Catmull和Smith在1971至1972年間提出了這個(gè)不可或缺的alpha數(shù)值,使得alpha渲染和alpha合成變得可能。提出者以alpha來命名是源于經(jīng)典的線性插值方程αA + (1-α)B所用的就是這個(gè)希臘字母。

PNG是一種使用RGBA的圖像格式。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java多線程 生產(chǎn)者消費(fèi)者模型實(shí)例詳解

    Java多線程 生產(chǎn)者消費(fèi)者模型實(shí)例詳解

    這篇文章主要介紹了Java多線程 生產(chǎn)者消費(fèi)者模型實(shí)例詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 淺談java中==以及equals方法的用法

    淺談java中==以及equals方法的用法

    這篇文章主要介紹了淺談java中==以及equals方法的用法,涉及二者的用法示例,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • Java實(shí)現(xiàn)五子棋游戲的完整代碼

    Java實(shí)現(xiàn)五子棋游戲的完整代碼

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)五子棋游戲的完整代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • Java實(shí)現(xiàn)世界上最快的排序算法Timsort的示例代碼

    Java實(shí)現(xiàn)世界上最快的排序算法Timsort的示例代碼

    Timsort?是一個(gè)混合、穩(wěn)定的排序算法,簡(jiǎn)單來說就是歸并排序和二分插入排序算法的混合體,號(hào)稱世界上最好的排序算法。本文將詳解Timsort算法是定義與實(shí)現(xiàn),需要的可以參考一下
    2022-07-07
  • 深入理解Spring?Boot中的Flyway

    深入理解Spring?Boot中的Flyway

    Flyway將數(shù)據(jù)庫(kù)結(jié)構(gòu)的變更定義為一系列遷移腳本,通常是SQL腳本文件,當(dāng)應(yīng)用程序啟動(dòng)時(shí),F(xiàn)lyway會(huì)自動(dòng)檢測(cè)并執(zhí)行未應(yīng)用的遷移腳本,將數(shù)據(jù)庫(kù)升級(jí)到最新版本,這篇文章主要介紹了深入理解Spring?Boot中的Flyway,需要的朋友可以參考下
    2024-01-01
  • Java與SpringBoot對(duì)redis的使用方式

    Java與SpringBoot對(duì)redis的使用方式

    這篇文章主要介紹了Java與SpringBoot對(duì)redis的使用方式,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-08-08
  • cookie、session和java過濾器結(jié)合實(shí)現(xiàn)登陸程序

    cookie、session和java過濾器結(jié)合實(shí)現(xiàn)登陸程序

    這篇文章主要為大家詳細(xì)介紹了cookie、session和java過濾器結(jié)合實(shí)現(xiàn)登陸程序的具體代碼,感興趣的朋友可以參考一下
    2016-05-05
  • 消息中間件詳解以及比較選擇

    消息中間件詳解以及比較選擇

    這篇文章主要介紹了消息中間件詳解以及比較選擇,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • java 實(shí)現(xiàn)截取字符串并按字節(jié)分別輸出實(shí)例代碼

    java 實(shí)現(xiàn)截取字符串并按字節(jié)分別輸出實(shí)例代碼

    這篇文章主要介紹了java 實(shí)現(xiàn)截取字符串并按字節(jié)分別輸出實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • 使用idea+gradle編譯spring5.x.x源碼分析

    使用idea+gradle編譯spring5.x.x源碼分析

    這篇文章主要介紹了idea?+?gradle編譯spring5.x.x源碼,在編譯spring5源碼時(shí)需要將項(xiàng)目導(dǎo)入idea中然后編譯配置,本文給大家講解的非常詳細(xì),需要的朋友可以參考下
    2022-04-04

最新評(píng)論

翁牛特旗| 兴山县| 清苑县| 蕉岭县| 龙门县| 丰镇市| 岱山县| 界首市| 莫力| 响水县| 邯郸县| 封开县| 蓬莱市| 昭觉县| 太仓市| 梁平县| 叶城县| 石狮市| 微山县| 葵青区| 巩留县| 祁连县| 肥东县| 平凉市| 汕头市| 北流市| 德庆县| 南昌市| 山东省| 新河县| 台北县| 漳浦县| 高邑县| 陇南市| 石城县| 青田县| 禄丰县| 高要市| 富裕县| 咸丰县| 西盟|