groovy加水印

发布时间:2020-01-12 发布网站:大佬教程
大佬教程收集整理的这篇文章主要介绍了groovy加水印大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
// cf. http://kyle-in-jp.blogspot.com/2008/08/java2d.html
// cf. http://d.hatena.ne.jp/toshyon/20060609/p1

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,Image.SCALE_AREA_AVERAGING),newX,null)

    // 调整
    def putPosCalc = [
      topLeft    : { [x: 0,y: 0]                                      },topRight   : { [x: yourImg.width - resizedIconImg.width,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."
  }
}

大佬总结

以上是大佬教程为你收集整理的groovy加水印全部内容,希望文章能够帮你解决groovy加水印所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ群:277859234,请注明来意。