golang-imagick图片去除边框(黑边,白边,),添加中文字
图片去除边框(黑边,白边)
package main import (
"fmt"
"github.com/gographics/imagick/imagick"
"io/ioutil"
"os"
"strconv"
) func ReadFile(path string) (string, error) {
fi, err := os.Open(path)
if err == nil {
defer fi.Close()
fd, err := ioutil.ReadAll(fi)
return string(fd), err
} else {
return "", err
} } func main() { arg_num := len(os.Args)
if arg_num < {
fmt.Println("./tester [imagepath][trimdistance]")
return
} imagick.Initialize()
defer imagick.Terminate() compMW := imagick.NewMagickWand()
compMW.ReadImage(os.Args[])
trimDistance, _ := strconv.ParseFloat(os.Args[], ) err := compMW.TrimImage(trimDistance)
if err != nil {
fmt.Println("trim failed, ", err)
} else {
compMW.TrimImage(trimDistance)
compMW.WriteImage("./trim.jpg")
fmt.Println("trim success")
}
compMW.Destroy()
}
=========================
追加:为图片添加中文字
===================
func AddTextImage(Args []string) {
imagick.Initialize()
defer imagick.Terminate()
mw := imagick.NewMagickWand()
mw.ReadImage(Args[])
defer mw.Destroy() dw := imagick.NewDrawingWand()
defer dw.Destroy() pw := imagick.NewPixelWand()
pw.SetColor("red")
defer pw.Destroy()
#这里需要是字体文件的绝对路径
dw.SetFont("./simsun.ttc")
dw.SetFontSize()
dw.SetFillColor(pw)
dw.SetTextEncoding("UTF-8")
mw.AnnotateImage(dw, , , , "@ 你好 Hello...")
mw.DrawImage(dw) mw.WriteImage("textlog.jpg")
}
=====================
追加:
=====================
不明白,代码加上fuzz的效果没出来,命令行可以进行,也是醉了。
convert ~/Downloads/video1.jpg -fuzz 10% -trim ./trim.jpg
参考:
http://www.imagemagick.org/Usage/crop/#trim
http://blog.csdn.net/newborn2012/article/details/24964577
golang-imagick图片去除边框(黑边,白边,),添加中文字的更多相关文章
- 非黑即白--谷歌OCR光学字符识别
# coding=utf-8 #非黑即白--谷歌OCR光学字符识别 # 颜色的世界里,非黑即白.computer表示深信不疑. # 今天研究一下OCR光学识别庞大领域中的众多分支里的一个开源项目的一个 ...
- Android 启动APP时黑屏白屏的三个解决方案
你会很奇怪,为什么有些app启动时,会出现一会儿的黑屏或者白屏才进入Activity的界面显示,但是有些app却不会如QQ手机端,的确这里要做处理一下.这里先了解一下为什么会出现这样的现象,其实很简单 ...
- Android 启动APP时黑屏白屏的三个解决方案(转载)
你会很奇怪,为什么有些app启动时,会出现一会儿的黑屏或者白屏才进入Activity的界面显示,但是有些app却不会如QQ手机端,的确这里要做处理一下.这里先了解一下为什么会出现这样的现象,其实很简单 ...
- C#实现给图片加边框的方法
Bitmap bit= new Bitmap(@"" + Path);//给图片加边框 //Bitmap bit = new Bitmap(Screen.AllScreens[0] ...
- golang实现图片上传
golang实现图片上传 该代码为使用beego实现前后端图片上传.话不多说,直接上代码. 1.前端代码 html代码: <div class="col-5 f-l text text ...
- iOS 解决LaunchScreen中图片加载黑屏问题
iOS 解决LaunchScreen中图片加载黑屏问题 原文: http://blog.csdn.net/chengkaizone/article/details/50478045 iOS 解决Lau ...
- CSS魔法堂:重拾Border之——图片作边框
前言 当CSS3推出border-radius属性时我们是那么欣喜若狂啊,一想到终于不用再添加额外元素来模拟圆角了,但发现border-radius还分水平半径和垂直半径,然后又发现border-t ...
- CSS鼠标悬停图片加边框效果,不位移的方法
<!DOCTYPE HTML> <html lang="en-US"> <head> <title>css实现鼠标悬停时图片加边框效 ...
- listview滚动时背景闪烁,背景黑或白问题解决
android在使用listview时出现滚动时背景闪烁,变成背景黑或白的问题这样处理: 1:在布局文件中listview标签中加入: android:cacheColorHint="#00 ...
随机推荐
- RP2836 板卡信息标识
RP2836 板卡信息标识 可以标识16种扩展应用 MCI_DA4 PD5 R120上拉 R121下拉 MCI_DA5 PD6 R125上拉 R124下拉 MCI_DA6 PD7 R122 ...
- Linux系统查看公网IP地址
curl members.3322.org/dyndns/getip
- C++ operator关键字(重载操作符)
operator是C++的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将operator=整体上视为一个函数名. 这是C++扩展运算符功能的方法,虽然样子古怪,但也可以理解:一方面 ...
- node.js在2018年能继续火起来吗?我们来看看node.js的待遇情况
你知道node.js是怎么火起来的吗?你知道node.js现在的平均工资是多少吗?你知道node.js在2018年还能继续火吗?都不知道?那就来看文章吧,多学点node.js,说不定以后的你工资就会高 ...
- PostgreSQL 配置远程访问
配置远 程连接PostgreSQL数据库的步骤很简单,只需要修改data目录下的pg_hba.conf和postgresql.conf. pg_hba.conf:配置对数据库的访问权限, postgr ...
- C#读取EXECL关键代码
string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";Extend ...
- 什么是Spring Cloud
Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.消息总线.负载均衡.断路器.数据监控等,都可以用 ...
- 【BZOJ】1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏(floyd)
http://www.lydsy.com/JudgeOnline/problem.php?id=1641 这种水题无意义... #include <cstdio> #include < ...
- 整理:java定时器。
本文纯属个人思路,如有错误,请指正. java的Timer依赖Thread,每一个Timer实际上都是一个Thread. import java.util.TimerTask; /** * 本类仅为实 ...
- Your Progress As A Programmer Is All Up To You
Feb 3, 2014 I read a comment on a post on Hacker News where a young programmer said they didn't want ...