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

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

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

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

    深入理解Spring?Boot中的Flyway

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

    Java與SpringBoot對redis的使用方式

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

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

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

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

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

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

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

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

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

最新評論

确山县| 仁化县| 左云县| 太谷县| 辉南县| 林周县| 剑阁县| 两当县| 信宜市| 荥经县| 蛟河市| 普兰店市| 女性| 娱乐| 乌拉特中旗| 永顺县| 进贤县| 慈利县| 乐山市| 德安县| 安吉县| 阿拉尔市| 班玛县| 雅安市| 友谊县| 棋牌| 东平县| 黎川县| 虎林市| 宜都市| 象山县| 普洱| 辰溪县| 左权县| 靖安县| 崇信县| 嵊州市| 夏津县| 楚雄市| 五原县| 息烽县|