[groovy]代码库
import java.awt.*
import java.awt.image.*
import javax.imageio.*
/**
* 图片添加水印
*/
class GroovyLogoAdder {
static def OUTPUT_FORMAT = 'png'
static def RATIO = 70 // 縮小率(%)
BufferedImage iconImg = ImageIO.read(this.class.getResource('/images/groovy-logo.png'))
void makeImage(File file) {
// 创建图像
BufferedImage yourImg = ImageIO.read(file)
// 调整
int newX = yourImg.width * (RATIO / 100)
int newY = newX * iconImg.height / iconImg.width
BufferedImage resizedIconImg = new BufferedImage(newX, newY, iconImg.getType())
resizedIconImg.getGraphics().drawImage(iconImg.getScaledInstance(newX, newY, Image.SCALE_AREA_AVERAGING), 0, 0, newX, newY, null)
// 调整
def putPosCalc = [
topLeft : { [x: 0, y: 0] },
topRight : { [x: yourImg.width - resizedIconImg.width, y: 0] },
bottomLeft : { [x: 0, y: yourImg.height - resizedIconImg.height] },
bottomRight: { [x: yourImg.width - resizedIconImg.width, y: yourImg.height - resizedIconImg.height] }
]
// 添加徽标
Graphics2D gr = yourImg.createGraphics()
gr.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0F))
def putPos = putPosCalc.bottomRight() // 右下
gr.drawImage(resizedIconImg, putPos.x, putPos.y ,null)
gr.dispose() // グラフィクスを放棄
// 输出(PNG)
def resultFile = new File(file.name + '_groovy.' + OUTPUT_FORMAT)
ImageIO.write(yourImg, OUTPUT_FORMAT, resultFile)
println "${resultFile.name} created."
}
}
by: 发表于:2017-09-20 10:12:57 顶(0) | 踩(0) 回复
??
回复评论