Go指南练习_图像
https://tour.go-zh.org/methods/25
一、题目描述
还记得之前编写的图片生成器吗?我们再来编写另外一个,不过这次它将会返回一个 image.Image 的实现而非一个数据切片。
定义你自己的 Image 类型,实现必要的方法并调用 pic.ShowImage。
Bounds 应当返回一个 image.Rectangle ,例如 image.Rect(0, 0, w, h)。
ColorModel 应当返回 color.RGBAModel。
At 应当返回一个颜色。上一个图片生成器的值 v 对应于此次的 color.RGBA{v, v, 255, 255}。

二、题目分析
image 包定义了 Image 接口:
package image
type Image interface {
ColorModel() color.Model //颜色模式
Bounds() Rectangle //图片边界
At(x, y int) color.Color //图像上某个点的颜色
}
*注意:* Bounds 方法的返回值 Rectangle 实际上是一个 image.Rectangle,它在image 包中声明。
了解官方的Image包的结构后,接下来就可以自己写方法。
三、Go代码
package main import (
"golang.org/x/tour/pic"
"image/color"
"image"
) type Image struct{} //新建一个Image结构体 func (i Image) ColorModel() color.Model{ //实现Image包中颜色模式的方法
return color.RGBAModel
} func (i Image) Bounds() image.Rectangle{ //实现Image包中生成图片边界的方法
return image.Rect(,,,)
} func (i Image) At(x,y int) color.Color{ //实现Image包中生成图像某个点的方法
return color.RGBA{uint8(x),uint8(y),uint8(),uint8()}
} func main() {
m := Image{}
pic.ShowImage(m) //调用
}

四、参考资料
https://linkscue.com/2018/02/28/go-tour-practice-image/
Go指南练习_图像的更多相关文章
- 第九讲_图像生成 Image Captioning
第九讲_图像生成 Image Captioning 生成式对抗网络 Generative Adversarial network 学习数据分布:概率密度函数估计+数据样本生成 生成式模型是共生关系,判 ...
- 第八讲_图像问答Image Question Answering
第八讲_图像问答Image Question Answering 课程结构 图像问答的描述 具备一系列AI能力:细分识别,物体检测,动作识别,常识推理,知识库推理..... 先要根据问题,判断什么任务 ...
- 第三讲_图像特征与描述Image Feature Descriptor
第三讲_图像特征与描述Image Feature Descriptor 概要 特征提取方法 直方图 对图片数据/特征分布的一种统计:对不同量进行直方图统计:可以表示灰度,颜色,梯度,边缘,形状,纹理, ...
- 第二讲_图像数据处理Image Data Processing
第二讲_图像数据处理Image Data Processing 深度模型出现后被弱化,但是思想的影子在深度模型中可以看到的 图片存储原理 RGB颜色空间:三通道(b,g,r),加法混色 CMY(K): ...
- 『TensorFlow』第九弹_图像预处理_不爱红妆爱武装
部分代码单独测试: 这里实践了图像大小调整的代码,值得注意的是格式问题: 输入输出图像时一定要使用uint8编码, 但是数据处理过程中TF会自动把编码方式调整为float32,所以输入时没问题,输出时 ...
- 『cs231n』作业3问题4选讲_图像梯度应用强化
[注],本节(上节也是)的model是一个已经训练完成的CNN分类网络. 随机数图片向前传播后对目标类优化,反向优化图片本体 def create_class_visualization(target ...
- Bootstrap_表单_图像
在Bootstrap框架中对于图像的样式风格提供以下几种风格: 1.img-responsive:响应式图片,主要针对于响应式设计2.img-rounded:圆角图片3.img-circle:圆形图片 ...
- Go指南练习_映射
源地址 https://tour.go-zh.org/moretypes/23 一.题目描述 实现 WordCount.它应当返回一个映射,其中包含字符串 s 中每个“单词”的个数.函数 wc.Tes ...
- Go指南练习_切片
源地址 https://tour.go-zh.org/moretypes/18 一.练习题描述 实现 Pic.它应当返回一个长度为 dy 的切片,其中每个元素是一个长度为 dx,元素类型为 uint8 ...
随机推荐
- BZOJ.2707.[SDOI2012]走迷宫(期望 Tarjan 高斯消元)
题目链接 一个点到达终点的期望步数 \(E_i=\sum_{(i,j)\in G}\frac{E_j+1}{out[i]}\),\(out[i]\)为点\(i\)的出度. 那么对于一个DAG可以直接在 ...
- AGC 016C.+/- Rectangle(思路 构造)
题目链接 首先想到同样例1的构造方式.即不得不填负的格子填\(-h*w\),其余填\(1\).直接这样能过二三十个点. 只这样不对.比如1 4 1 3,会输出无解(会填[1 1 -3 1]).怎么改呢 ...
- Cesiumjs初学第一天
官网demo地址: https://cesiumjs.org/Cesium/Apps/Sandcastle/?src=Geometry%20and%20Appearances.html&lab ...
- 设置Sublime Text 3的光标样式
升级了Sublime Text 3,结果光标变成了这个样子,非常不习惯: 查了文档http://www.sublimetext.com/3 ,Build 3059中得描述: Added setting ...
- BZOJ3019 : [Balkan2012]handsome
首先预处理出$f[i][j][k]$表示长度为$i$的序列,第一个位置是$j$,最后一个位置是$k$时合法的方案数. 从后往前枚举LCP以及那个位置应该改成什么. 用线段树维护区间内最左最右的已经确定 ...
- mongodb.副本集配置方法(使用keyfile认证部署)
前提条件: - 已安装MongoDB, 版本以3.6为例 - 系统: Debian9 - 建议做副本集的话, 以3台以上为宜, 本文以1台主机2个服务为例 1.创建数据存放的目录, 并授权 sudo ...
- 实战:mysql统计指定架构的全部表的数据和索引大小情况-v2
PS:第一个版本号里未做输入的schema_name和table_name推断,改动了一下!再次share! #统计指定架构的全部表的数据和索引大小情况 #tablesize.sh #!/bin/sh ...
- UIView的层次结构–code
转:http://blog.dongliwei.cn/archives/uiview-tree-code // Recursively travel down the view tree, incre ...
- 使用jetty工具包处理url参数成map
引入工具包: <dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-u ...
- org.springframework.web.util.WebUtils.isSameOrigin(WebUtils.java:816)
Nginx反向代理WebSocket时报这个错,普通的http请求没问题,ws请求报错 可能原因: 1.你用了4.2.5.RELEASE版本或者4.2.6.RELEASE,升级到4.2.7.RELEA ...