图片去除边框(黑边,白边)

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图片去除边框(黑边,白边,),添加中文字的更多相关文章

  1. 非黑即白--谷歌OCR光学字符识别

    # coding=utf-8 #非黑即白--谷歌OCR光学字符识别 # 颜色的世界里,非黑即白.computer表示深信不疑. # 今天研究一下OCR光学识别庞大领域中的众多分支里的一个开源项目的一个 ...

  2. Android 启动APP时黑屏白屏的三个解决方案

    你会很奇怪,为什么有些app启动时,会出现一会儿的黑屏或者白屏才进入Activity的界面显示,但是有些app却不会如QQ手机端,的确这里要做处理一下.这里先了解一下为什么会出现这样的现象,其实很简单 ...

  3. Android 启动APP时黑屏白屏的三个解决方案(转载)

    你会很奇怪,为什么有些app启动时,会出现一会儿的黑屏或者白屏才进入Activity的界面显示,但是有些app却不会如QQ手机端,的确这里要做处理一下.这里先了解一下为什么会出现这样的现象,其实很简单 ...

  4. C#实现给图片加边框的方法

    Bitmap bit= new Bitmap(@"" + Path);//给图片加边框 //Bitmap bit = new Bitmap(Screen.AllScreens[0] ...

  5. golang实现图片上传

    golang实现图片上传 该代码为使用beego实现前后端图片上传.话不多说,直接上代码. 1.前端代码 html代码: <div class="col-5 f-l text text ...

  6. iOS 解决LaunchScreen中图片加载黑屏问题

    iOS 解决LaunchScreen中图片加载黑屏问题 原文: http://blog.csdn.net/chengkaizone/article/details/50478045 iOS 解决Lau ...

  7. CSS魔法堂:重拾Border之——图片作边框

    前言  当CSS3推出border-radius属性时我们是那么欣喜若狂啊,一想到终于不用再添加额外元素来模拟圆角了,但发现border-radius还分水平半径和垂直半径,然后又发现border-t ...

  8. CSS鼠标悬停图片加边框效果,不位移的方法

    <!DOCTYPE HTML> <html lang="en-US"> <head> <title>css实现鼠标悬停时图片加边框效 ...

  9. listview滚动时背景闪烁,背景黑或白问题解决

    android在使用listview时出现滚动时背景闪烁,变成背景黑或白的问题这样处理: 1:在布局文件中listview标签中加入: android:cacheColorHint="#00 ...

随机推荐

  1. openresty package.path require 报错

    在文件中 package.path = '/usr/local/share/lua/5.1/?.lua;/usr/local/openresty/lualib/resty/?.lua;' packag ...

  2. div上下滚动

    <div class="table-scrollable" style='height:601px'></div> <style> .table ...

  3. 编译内核出现"mkimage" command not found - U-Boot images will not be built

    参考链接: http://spyker729.blogspot.com/2010/07/mkimage-command-not-found-u-boot-images.html 制作uImage的工具 ...

  4. Unity四元数和旋转

    四元数介绍 旋转,应该是三种坐标变换——缩放.旋转和平移,中最复杂的一种了.大家应该都听过,有一种旋转的表示方法叫四元数.按照我们的习惯,我们更加熟悉的是另外两种旋转的表示方法——矩阵旋转和欧拉旋转. ...

  5. java---正则表达式的字符串简单实用及扩展链接

    一:什么是正则表达式 1.定义:正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的 ...

  6. php -- in_array函数

    in_array    检查数组中是否存在某个值 说明 bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE  ...

  7. 基于struts2框架文件的上传与下载

    在开发一些社交网站时,需要有允许用户上传自己本地文件的功能,则需要文件的上传下载代码. 首先考虑的是文件的储存位置,这里不考虑存在数据库,因为通过数据库查询获取十分消耗资源与时间,故需将数据存储在服务 ...

  8. hdu 2019:数列有序!(数据结构,直接插入排序+折半插入排序)

    数列有序! Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submiss ...

  9. python3----练习......

    # 上行遍历 soup = BeautifulSoup(demo, 'html.parser') for parent in soup.a.parents: if parent is None: pr ...

  10. 第六篇:二维数组的传输 (host <-> device)

    前言 本文的目的很明确:介绍如何将二维数组传递进显存,以及如何将二维数组从显存传递回主机端. 实现步骤 1. 在显存中为二维数组开辟空间 2. 获取该二维数组在显存中的 pitch 值 (cudaMa ...