当前位置: 首页 > news >正文

珠海营销型网站项目推广方案

珠海营销型网站,项目推广方案,军事新闻最新24小时,店铺logo图片免费生成软件需求#xff1a; 1#xff0c;员工签到图片加水印 2#xff0c;水印文字需要有半透明的底色#xff0c;避免水印看不清 3#xff0c;图片宽设置在600#xff0c;小于600或者大于600都需要等比例修改图片的高度#xff0c;保持水印在图片中的大小和位置 4#xff0c;处理… 需求 1员工签到图片加水印 2水印文字需要有半透明的底色避免水印看不清 3图片宽设置在600小于600或者大于600都需要等比例修改图片的高度保持水印在图片中的大小和位置 4处理后图片和原图大小不要相差太多 调用 fileName : display_20231229134926805_9512.jpgwaterMark : WaterMarkInfo{UserInfo: 1123456789-仲夏夜的梦 2023-12-28 17:23:54,SignAddress: [119.092868,34.887314] 中国广东省深圳市龙岗区坂田街道华为基地广东省深圳市南山区广东省深圳市南山区广东省深圳市南山区广东省深圳市南山区广东省深圳市南山区,}addSigninWaterMark(fileName, waterMark) 图片加水印方法 // WaterMarkInfo 水印信息 type WaterMarkInfo struct {UserInfo string //用户信息SignAddress string //签到地址 }// 增加打卡水印 func addSigninWaterMark(fileName string, waterMarkInfo WaterMarkInfo) error {//接口异常捕获defer func() {if err : recover(); err ! nil {sbjlog.ExcLog(100, addSigninWaterMark-图片增加水印异常err%v, err)}}()//需要加水印的图片imgfile, err : os.Open(tempImgDir fileName)if err ! nil {sbjlog.Debug(addSigninWaterMark os.Open ERROR:%v \r\n, err)return err}defer imgfile.Close()jpgimg, err : jpeg.Decode(imgfile)if err ! nil {sbjlog.Debug(addSigninWaterMark jpeg.Decode ERROR:%v \r\n, err)return err}//对图片进行大小变更,图片的宽必须是600水印文字长度是按照600来设置的imgWidth : uint(600)imgHeight : uint(800)if uint(jpgimg.Bounds().Dx()) ! imgWidth {imgHeight uint(imgWidth) * uint(jpgimg.Bounds().Dy()) / uint(jpgimg.Bounds().Dx())jpgimg resize.Resize(600, imgHeight, jpgimg, resize.Bilinear)}//新建空白图层img : image.NewRGBA64(jpgimg.Bounds())pic2FramePadding : 20waterMarkHeight : 80waterMarkWidth : 600//新建空白白色图层transparentImg : image.NewRGBA64(image.Rect(0, 0, waterMarkWidth-pic2FramePadding/2, waterMarkHeight))//设置空白白色图层的大小draw.Draw(transparentImg,image.Rect(pic2FramePadding/2, pic2FramePadding/2, transparentImg.Bounds().Dx(), transparentImg.Bounds().Dy()),image.White,image.Point{},draw.Over)//把原来的图片画到空白图层上draw.Draw(img, jpgimg.Bounds(), jpgimg, jpgimg.Bounds().Min, draw.Over)//设置白色图层透明度color.Alpha值在0-255之间越靠近0越来透明mask : image.NewUniform(color.Alpha{180})//把空白图层画到空白图层上draw.DrawMask(img, img.Bounds().Add(image.Pt(0, jpgimg.Bounds().Dy()-waterMarkHeight-pic2FramePadding/2)), transparentImg, image.ZP, mask, image.Point{}, draw.Over)//给空白图层加水印err addWaterMarkToImage(img, waterMarkInfo)if err ! nil {return err}//保存到新文件中newfile, err : os.Create(tempImgDir fileName)//在尽量不损失图片质量的情况下保证绘制后图片和原图片一样大jpeg.Options{94}err jpeg.Encode(newfile, img, jpeg.Options{94})if err ! nil {fmt.Println(err)}return nil } 图片加文字 func addWaterMarkToImage(newTemplateImage *image.RGBA64, waterMarkInfo WaterMarkInfo) error {// 在写入之前有一些准备工作content : freetype.NewContext()fontTtf, err : loadFont(runtime/fonts/simsun.ttc)if err ! nil {sbjlog.Debug(addWaterMarkToImage loadFont ERROR:%v \r\n, err)return err}content.SetClip(newTemplateImage.Bounds())content.SetDst(newTemplateImage)content.SetSrc(image.Black) // 设置字体颜色content.SetDPI(72) // 设置字体分辨率content.SetFontSize(14) // 设置字体大小content.SetFont(fontTtf) // 设置字体样式就是我们上面加载的字体// 正式写入文字// 参数1要写入的文字// 参数2文字坐标//dx : newTemplateImage.Bounds().Dx()dy : newTemplateImage.Bounds().Dy()topSignAddress : waterMarkInfo.SignAddressendSignAddress : if len(waterMarkInfo.SignAddress) 100 {topSignAddress xstring.SubString(waterMarkInfo.SignAddress, 100)endSignAddress waterMarkInfo.SignAddress[len(topSignAddress):]}pic2FramePadding : 20markHeiht : dy - pic2FramePadding*3content.DrawString(waterMarkInfo.UserInfo, freetype.Pt(pic2FramePadding, markHeiht))markHeiht markHeiht 20content.DrawString(topSignAddress, freetype.Pt(pic2FramePadding, markHeiht))markHeiht markHeiht 20content.DrawString(endSignAddress, freetype.Pt(pic2FramePadding, markHeiht))return nil } 加载字体 // 根据路径加载字体文件 // path 字体的路径 func loadFont(path string) (font *truetype.Font, err error) {var fontBytes []bytefontBytes, err ioutil.ReadFile(path) // 读取字体文件if err ! nil {err fmt.Errorf(加载字体文件出错:%s, err.Error())return}font, err freetype.ParseFont(fontBytes) // 解析字体文件if err ! nil {err fmt.Errorf(解析字体文件出错,%s, err.Error())return}return }
http://www.hkea.cn/news/14276614/

相关文章:

  • 网站中页面模板设计网站备案接入商是什么
  • 科技厅哪家公司做推广优化好
  • 网站建设的成果怎么写网站建设实验总结
  • 保险网站建设的目标2023一般纳税人企业所得税怎么算
  • 佛山网站建设网站建设收费苏州网站建设营销
  • 做网站设计师能10年赚100万吗电商网站怎样做
  • 个人免费网站建站运营建设银行个人网上银行网站加载
  • 网站建设开发方案wordpress主题显示不完整
  • 展示网站重庆市工程建筑造价信息网
  • 大的网站建设公司好网站建站在线制作
  • 摄影展示网站源码领地网做网站咋加文章
  • 大众汽车网站建设南宁网站建设加q.479185700
  • 娄底市住房和城乡建设局网站wordpress 自定义链接地址
  • 公司建设网站费用怎么记账深圳蕾奥规划设计公司网站
  • 做交易平台的网站需要哪些技术北京网站制做的公司
  • 设计素材免费下载网站国内哪个应用商店app最全
  • 济南手机网站建设公司哪家好汕头建设局网站
  • 网站制作软件培训个人网站上传有啥要求
  • 手机网站建设与制作互联网营销的优点
  • 网站底部固定代码企业 怎么建交互网站
  • 怎么建设游戏试玩平台网站东莞企业网站教程
  • wordpress 大站wordpress设置浏览数
  • 国内网站用django做的随州网站设计开发方案
  • 潍坊网站开发weifangwangluo网站开发什么比较有创意
  • 北辰做网站公司wordpress管理员修改密码
  • 重庆手机网站推广网站建设四川冠辰
  • 赣州网站建设 赣州网页设计微信小程序制作文档
  • 网站后台关键词设置apache搭建多个网站
  • 北京出名做网站的公司网站建设奖项
  • 丽水房产网站建设外包网络优化