golang图片式水印处理

//golang图片式水印处理
//未实现Web上传等代码...
//sam
//2013.6.19
//http://zituo.net
package main
 
import (
     "fmt"
     "image"
     "image/draw"
     "image/jpeg"
     "image/png"
     "os"
)
 
func main() {
     //原始图片是sam.jpg
     imgb, _ := os.Open("sam.jpg")
     img, _ := jpeg.Decode(imgb)
     defer imgb.Close()
 
     wmb, _ := os.Open("text.png")
     watermark, _ := png.Decode(wmb)
     defer wmb.Close()
 
     //把水印写到右下角,并向0坐标各偏移10个像素
     offset := image.Pt(img.Bounds().Dx()-watermark.Bounds().Dx()-10, img.Bounds().Dy()-watermark.Bounds().Dy()-10)
     b := img.Bounds()
     m := image.NewNRGBA(b)
 
     draw.Draw(m, b, img, image.ZP, draw.Src)
     draw.Draw(m, watermark.Bounds().Add(offset), watermark, image.ZP, draw.Over)
 
     //生成新图片new.jpg,并设置图片质量..
     imgw, _ := os.Create("new.jpg")
     jpeg.Encode(imgw, m, &jpeg.Options{100})
 
     defer imgw.Close()
 
     fmt.Println("水印添加结束,请查看new.jpg图片...")
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Go语言操作Excel文件并添加水印通常涉及到使用第三方库,比如`xlsx`或者`go-xlsx`等。例如,使用`xlsx`库可以让你读取和修改Excel文件,并通过样设置来实现简单的文字水印。 首先,你需要安装`xlsx`库: ```bash go get github.com/xuri/xlsx/v4 ``` 然后,你可以编写这样的代码片段来添加水印: ```go package main import ( "github.com/xuri/xlsx" "fmt" ) func addWatermark(workbook *xlsx.Workbook, sheetName string, watermarkText string) { sheet, err := workbook.GetSheetByName(sheetName) if err != nil { fmt.Println("Error getting sheet:", err) return } // 获取工作表的默认字体 fontID, _ := workbook.DefaultFontIndex() // 创建一个新的字体样,包含水印文本 newFont := xlsx.NewFont() newFont.Name = "Arial" newFont.Size = 20 // 设置字体大小 newFont.Color.SetRGB(0x80, 0x80, 0x80) // 设置半透明灰色作为背景 newFont.Underline = true newFont.Strikethrough = true // 添加新的字体到样 workbook.AddCustomStyle(xlsx.Style{ Name: fmt.Sprintf("Watermark_%s", watermarkText), Family: "Arial", FSize: 20, Bold: false, Italic: false, Underline: xlsx.UnderlineSingle, Strikeout: true, Font: newFont, }) // 将水印文字应用到指定单元格 cell := sheet.AddCell() cell.R, cell.C = 1, 1 // 指定位置,这里假设是A1 cell.Value = watermarkText cell.FontStyle = fmt.Sprintf("%s", workbook.GetCellStyleID("Watermark_" + watermarkText)) } func main() { // 加载或创建Excel文件 wb := xlsx.NewFile() addWatermark(wb, "Sheet1", "Your Watermark") // 保存文件 err := wb.Save("example.xlsx") if err != nil { fmt.Println("Error saving file:", err) } } ``` 这个例子展示了如何在一个名为"Sheet1"的工作表上添加一个简单的文字水印。记住替换`sheetName`、`watermarkText`以及实际的文件名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值