使用BufferedImage進行漸變色操作

本文主要簡述一下如何使用BufferedImage進行漸變色操作。

GradientPaint

java/awt/GradientPaint.java

public class GradientPaint implements Paint {Point2D.Float p1;Point2D.Float p2;Color color1;Color color2;boolean cyclic;//......   
}    

這個是生成漸變色的關鍵類,當然也有其他的漸變類,比如
java/awt/LinearGradientPaint.java
實例

public static BufferedImage drawGradient(BufferedImage srcImg,

                                         int startX, int startY,int endX, int endY,Color colorFrom, Color colorTo,float opacity) {BufferedImage dstImg = new BufferedImage(srcImg.getWidth(), srcImg.getHeight(), BufferedImage.TYPE_INT_RGB);GradientPaint grad = new GradientPaint(startX, startY, colorFrom, endX, endY, colorTo); //從左上到右下漸變;Graphics2D g2 = (Graphics2D) dstImg.getGraphics();g2.setPaint(grad);g2.fillRect(startX, startY, endX, endY);g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, opacity));g2.drawImage(srcImg, 0, 0, srcImg.getWidth(), srcImg.getHeight(), null);g2.dispose();return dstImg;
}

原理就是先使用GradientPaint畫一個漸變色的矩形,然后將原圖使用一定透明度覆蓋上去,這樣就看出漸變。
不足之后的話,就是漸變顏色會偏淡。

歡迎加入學習交流群569772982,大家一起學習交流。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/540395.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/540395.shtml
英文地址,請注明出處:http://en.pswp.cn/news/540395.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[轉載] Java中的字符串處理

參考鏈接: Java中的StringBuffer appendCodePoint()方法以及示例 JDK8在線Api中文手冊 JDK8在線Api英文手冊 Java中的字符串處理 1.1 String類的構造函數1.2 字符串的長度1.3 特殊的字符串操作1.3.1 字符串字面值1.3.2 字符串連接1.3.3 字符串和其他數據類型的連…

MySQL循環語句之while循環測試

轉自:http://www.nuoweb.com/database/7614.htmlMySQL有循環語句操作,while 循環、loop循環和repeat循環,目前我只測試了 while 循環,下面與大家分享下mysql 操作同樣有循環語句操作,網上說有3中標準的循環方式&#x…

[轉載] JAVA環境變量配置

參考鏈接: Java中的變量 安裝JDK(1.8) Oracle官網 下載jdk 百度網盤window版本 提取碼:o99i win 10環境變量配置 在電腦桌面 右鍵點擊 此電腦 的 屬性 選項 選擇 高級系統設置 > 然后點擊 環境變量 選項 點擊 系統變量 下的 新建 按鈕&#xf…

[轉載] Java中的變量和常量

參考鏈接: Java中的變量范圍 在程序中存在大量的數據來代表程序的狀態,其中有些數據在程序的運行過程中值會發生改變,有些數據在程序運行過程中值不能發生改變,這些數據在程序中分別被叫做變量和常量。 在實際的程序中&#xf…

4.3/4.4 磁盤分區

2019獨角獸企業重金招聘Python工程師標準>>> 添加虛擬磁盤 第一步,選擇虛擬機中的“設置” 第二步,選擇“添加硬盤” 第三步,選擇_SCSI (推薦) # 保持默認 第四步,選擇“創建新的虛擬磁盤…

[轉載] java(三)對象的序列化與static、final關鍵字

參考鏈接: Java中的final最終變量 java對象的序列化 Java序列化是指把Java對象轉換為字節序列的過程;而Java反序列化是指把字節序列恢復為Java對象的過程。java中存有Cloneable接口,實現此接口的類都具有被拷貝能力,比new一個對象…

RoboMaster 2017:機器人版的「王者農藥」,工程師們的競技時代

8月6日晚,第十六屆全國大學生機器人大賽 RoboMaster 2017機甲大師賽在華潤深圳灣體育中心“春繭”體育館舉行,關于這個比賽的盛況已經無需贅述,去年雷鋒網參加上屆比賽時,報道的是「像看了一場演唱會」,如果用演唱會來…

[轉載] 詳解Java中的泛型

參考鏈接: Java中具有泛型的有界類型 1、什么是泛型 泛型,即“參數化類型”。一提到參數,最熟悉的就是定義方法時有形參,然后調用此方法時傳遞實參。那么參數化類型怎么理解呢?顧名思義,就是將類型由原來…

【初學者必讀】:前端工程師的知識體系

下圖是前端工程師圖解: 前端開發的核心是HTML CSS JavaScript。本質上它們構成一個MVC框架,即HTML作為信息模型(Model),CSS控制樣式(View),JavaScript負責調度數據和實現某種展現邏…

[轉載] Java面試題大全(2020版)

參考鏈接: Java中的循環 發現網上很多Java面試題都沒有答案,所以花了很長時間搜集整理出來了這套Java面試題大全,希望對大家有幫助哈~ 本套Java面試題大全,全的不能再全,哈哈~ 博主已將以下這些面試題整理成了一個…

使用Prometheus監控Cloudflare的全球網絡

Matt Bostock在SRECON 2017歐洲大會的演講中,介紹了如何使用Prometheus實現對CloudFlare分布于全球的架構和網絡的監控。Prometheus是一種基于度量進行監控的工具,CloudFlare是一家CDN、DNS和DDoS防御(Mitigation)服務提供商。\\基…

[轉載] Java-forEach增強for循環是值傳遞規則詳解

參考鏈接: Java中的for-each循環 1. 引入 正如Java語法意義,變量的傳遞只有值傳遞,雖然變量分為引用變量和基本類型變量,前者更像C中的地址概念。 在學習Lambda表達式的時候,遇到了試圖在增強for循環中對原鏈表元素重…

開始吧

2019獨角獸企業重金招聘Python工程師標準>>> 寫C三年有余,在技術方面也算小有所成。準備在這里分享一些C進階、Python、Golang技術文章。 CSDN博客地址: http://blog.csdn.net/godmaycry 以后博客同步更新。 轉載于:https://my.oschina.net/u…

[轉載] 常用應屆生Java開發筆試面試題(更新中)

參考鏈接: Java中的循環的重要事項 Java開發面試題 Java基礎篇Java8大基本數據類型Java的三大特性面向對象如果讓你推銷一款Java產品,你會怎么推銷呢?(java的特點)JVM與字節碼JDK與JREStringBuilder和StringBuffer的區…

java/javascript 時間操作工具類

一、java 時間操作工具類 import org.springframework.util.StringUtils;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.List;/*** 時間操作工具類** author zwq**/ public …

[轉載] java語言程序設計-基礎篇

參考鏈接: Java中的決策制定(if,if-else,switch,break,continue,jump) 第1章,計算機、程序和Java概述 包括【每個java初學者都應該搞懂的問題】 http://blog.csdn.net/haobo920/article/detai…

Exchange server 2013(十四)WSUS部署及組策略設置(2)

我們繼續上一節未完的博客,繼續我們的WSUS設置。[上一章節標題:Exchange server 2013(十四)WSUS部署及組策略設置(1) 網址:http://1183839.blog.51cto.com/blog/1173839/1182366] 首先單擊自動審批,來修改審批規則,也就是說當wsus偵測到新的更…

[轉載] Python中的switch語句的替代品

參考鏈接: Java中的switch語句 Python 中沒有 switch語句。 一般用if-else 語句可以替代switch語句,今天學習了使用字典的映射來代替switch語句。Mark一下 day 8; def get_sunday(): return sunday def get_monday(): return monday def get_tues…

“□” 表情無法在 Android 設備顯示? 快試試 EmojiCompact 表情兼容庫

有了支持庫 v26 下的 Compact 庫,基于 API 19 及更高版本開發的應用就能獲得 emoji 的向下兼容,再也不會看到顯示失敗的 “豆腐塊” 啦。如要使用 EmojiCompact,需要在應用啟動時通過下載或者打包字體來初始化庫。通過集成小插件,…

[轉載] jstl獲取Parameter參數及switch使用

參考鏈接&#xff1a; Java中的字符串使用switch <% taglib uri"/WEB-INF/tld/c.tld" prefix"c" %> param 獲取 Parameter參數 <c:choose> <c:when test"${empty param.name}"> Please enter your name. …