亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于Graphics2D drawImage圖片失真的解決方案

 更新時(shí)間:2021年11月15日 08:40:31   作者:人工博客  
這篇文章主要介紹了基于Graphics2D drawImage圖片失真的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Graphics2D drawImage圖片失真的解決

常規(guī)的寫(xiě)法

graphics.drawImage(originalBufferedImage, rectangle.x,
rectangle.y,
rectangle.width, rectangle.height, null);

優(yōu)化的寫(xiě)法

graphics.drawImage(
originalBufferedImage.getScaledInstance(rectangle.width,
rectangle.height, Image.SCALE_SMOOTH),
rectangle.x, rectangle.y, null);

Graphics2D 圖片合成、圖片處理需注意的細(xì)節(jié)及踩過(guò)的坑

Graphics2D 2d https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html

圖片處理

首先畫(huà)布肯定是需要的,可以新建一個(gè)空白畫(huà)布,也可以以圖片做畫(huà)布。

BufferedImage  bi = new BufferedImage(width,height,type);
2d = bi.createGraphics();

如果需要生成RGB格式,需要做如下配置

bi = 2d.getDeviceConfiguration().createCompatibleImage(width,height,Transparency.TRANSLUCENT);

注:參數(shù)width 和 height 要和是前面畫(huà)布的對(duì)應(yīng)。

Transparency透明度設(shè)置

畫(huà)圖 g.drawImage(img,x,y,width,hight);

注:參數(shù)x,y為圖片左上角坐標(biāo)

旋轉(zhuǎn)處理 AffineTransform atf.rotate(theta,x,y)

注:theta這兒的角度需要轉(zhuǎn)換成弧度數(shù)

x,y為旋轉(zhuǎn)中心坐標(biāo),圖片旋轉(zhuǎn)參考點(diǎn)為圖片的中心點(diǎn)

同時(shí)有偏移、縮放、旋轉(zhuǎn)操作時(shí),畫(huà)圖順序?yàn)椋嚎s放-->偏移-->旋轉(zhuǎn)

圖片抗鋸齒設(shè)置

2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALAS_ON);

image = image.getScaledInstance(width,height,BufferedImage.SCALE_SMOOTH)
g.drawImage(image,x,y,observer)

字體處理

Graphics2D 處理字體的做法和處理圖片的大體一致

1、最需要注意的一點(diǎn)就是 在畫(huà)字體的時(shí)候 x,y坐標(biāo)為字體左左左左下角

2、旋轉(zhuǎn)中心可以通過(guò)獲取字體的行高和字字符串寬度對(duì)應(yīng)的api計(jì)算獲得

3、最好用同一包中的字體ttf。如果混用,圖片在處理縮放時(shí)會(huì)存在差異,即使用的字體類型、大小、樣式都一致,同樣可能會(huì)存在差異

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

相關(guān)文章

  • 使用maven創(chuàng)建web項(xiàng)目的方法步驟(圖文)

    使用maven創(chuàng)建web項(xiàng)目的方法步驟(圖文)

    本篇文章主要介紹了使用maven創(chuàng)建web項(xiàng)目的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • 開(kāi)放封閉原則_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    開(kāi)放封閉原則_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了開(kāi)放封閉原則,開(kāi)放-封閉原則是面向?qū)ο笤O(shè)計(jì)的核心所在,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • spring?boot學(xué)習(xí)筆記之操作ActiveMQ指南

    spring?boot學(xué)習(xí)筆記之操作ActiveMQ指南

    ActiveMQ是一種開(kāi)源的基于JMS規(guī)范的一種消息中間件的實(shí)現(xiàn),ActiveMQ的設(shè)計(jì)目標(biāo)是提供標(biāo)準(zhǔn)的,面向消息的,能夠跨越多語(yǔ)言和多系統(tǒng)的應(yīng)用集成消息通信中間件,這篇文章主要給大家介紹了關(guān)于spring?boot學(xué)習(xí)筆記之操作ActiveMQ指南的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • 深入分析Spring Cloud 負(fù)載均衡器架構(gòu)選型

    深入分析Spring Cloud 負(fù)載均衡器架構(gòu)選型

    文章詳細(xì)介紹了OpenFeign的初始化和執(zhí)行流程,包括FeignClient注解、FeignClientsRegistrar類、FeignClientFactoryBean工廠類、Targeter接口及其實(shí)現(xiàn)等,感興趣的朋友一起看看吧
    2024-12-12
  • 淺析Mysql中的視圖

    淺析Mysql中的視圖

    這篇文章主要介紹了淺析Mysql中的視圖,視圖是從一個(gè)或者多個(gè)表中導(dǎo)出的表,視圖的行為與表非常相似,在視圖中用戶可以使用SELECT語(yǔ)句查詢數(shù)據(jù),以及使用INSERT、UPDATE和DELETE修改記錄,需要的朋友可以參考下
    2023-05-05
  • springboot整合Nacos組件環(huán)境搭建和入門案例詳解(最新推薦)

    springboot整合Nacos組件環(huán)境搭建和入門案例詳解(最新推薦)

    本文介紹了Nacos的基礎(chǔ)概念、關(guān)鍵特性、專業(yè)術(shù)語(yǔ)和生態(tài)圈,如何在Windows環(huán)境下搭建Nacos單個(gè)服務(wù),以及如何整合SpringBoot2來(lái)使用Nacos進(jìn)行服務(wù)注冊(cè)和配置管理,感興趣的朋友一起看看吧
    2025-03-03
  • Spring Boot通過(guò)Junit實(shí)現(xiàn)單元測(cè)試過(guò)程解析

    Spring Boot通過(guò)Junit實(shí)現(xiàn)單元測(cè)試過(guò)程解析

    這篇文章主要介紹了Spring Boot通過(guò)Junit實(shí)現(xiàn)單元測(cè)試過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Java調(diào)用Oracle存儲(chǔ)過(guò)程詳解

    Java調(diào)用Oracle存儲(chǔ)過(guò)程詳解

    這篇文章主要介紹了Java調(diào)用Oracle存儲(chǔ)過(guò)程詳解的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • shade解決mybatis包沖突問(wèn)題

    shade解決mybatis包沖突問(wèn)題

    這篇文章主要介紹了shade解決mybatis包沖突問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Springboot實(shí)現(xiàn)人臉識(shí)別與WebSocket長(zhǎng)連接的實(shí)現(xiàn)代碼

    Springboot實(shí)現(xiàn)人臉識(shí)別與WebSocket長(zhǎng)連接的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Springboot實(shí)現(xiàn)人臉識(shí)別與WebSocket長(zhǎng)連接的實(shí)現(xiàn),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-11-11

最新評(píng)論