美文网首页Go语言Go
go - 图片合成

go - 图片合成

作者: 反者道之动001 | 来源:发表于2018-03-05 13:42 被阅读124次

不知道写啥标题 但是不写又不好看, 哦 那就写吧。

package main

import (
    "image"
    "image/draw"
    "image/jpeg"
    "image/png"
    "os"
)

func main() {
    imgb, _ := os.Open("image.jpg")
    img, _ := jpeg.Decode(imgb)
    defer imgb.Close()

    wmb, _ := os.Open("watermark.png")
    watermark, _ := png.Decode(wmb)
    defer wmb.Close()

    offset := image.Pt(200, 200)
    b := img.Bounds()
    m := image.NewRGBA(b)
    draw.Draw(m, b, img, image.ZP, draw.Src)
    draw.Draw(m, watermark.Bounds().Add(offset), watermark, image.ZP, draw.Over)

    imgw, _ := os.Create("watermarked.jpg")
    jpeg.Encode(imgw, m, &jpeg.Options{jpeg.DefaultQuality})
    defer imgw.Close()
}

上面的代码来源自 https://stackoverflow.com/questions/16100023/manipulating-watermark-images-with-go 的答案。

_的地方替换下就可以, 如果都是注释,方式一大堆代码看不清楚。

注意下这里的格式
jpeg.Decode 或者 png.Decode都有可能解析出错。

原因一般都是图片格式不对, png的图不能用jpge的解析哦, 记得对号入座。

还有png的格式不一样是真的png格式, 比如本来就是jpge的格式,然后改了后缀成png, 那也是jpg格式

图片合成可以多个贴 贴贴

楼上代码亲测可用, 如果不行就要么是图片有问题, 要么路径错误。

路径的话绝对理解就是从盘符开始, 比如 D:/www/go/src/...


先更新到这里, 午安,

END

相关文章

  • go - 图片合成

    不知道写啥标题 但是不写又不好看, 哦 那就写吧。 上面的代码来源自 https://stackoverflo...

  • 对图片的设置

    合成图片。下载图片。拉伸图片 //合成图片 UIImageView *imageView = [[UIImageV...

  • 图片合成

    两张图片拼接 参考:https://www.feiyeda.top/http://csshengyao.cn/

  • 图片合成

    前段时间遇到产品一个需求,在移动端上合成生成二维码,并且合成背景图和二维码给用户保存; 当时我在想,链接拼接生成二...

  • js利用canvas合成图片

    转自 前端老徐合成图片 递归方式合成图片

  • 2D图片合成游戏

    2D图片合成游戏,主要是这个放在图片上的合成脚本

  • ffmpeg图片与视频互转

    提取9张图片 图片合成图片

  • 如何用PHP合成两张图片?

    前言:业务需要,进行两张图片的合成。 PHP图片合成类 调用方法:

  • 图片合成与添加文字

    一. 图片合成 确认两张素材图片的像素尺寸,决定合成方法(拼接/叠加),根据方法,计算出合成新图片的尺寸。 将图...

  • 图片合成、GIF图片的合成与解析

    一、普通图片合成(两张以上才有意义) 主要步骤: 创建需要合成的UIImage对象,通过CGImageRef获取i...

网友评论

    本文标题:go - 图片合成

    本文链接:https://www.haomeiwen.com/subject/pwchfftx.html