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(0,0,200,200)
}

func (i Image) At(x,y int) color.Color{  //实现Image包中生成图像某个点的方法
    return color.RGBA{uint8(x),uint8(y),uint8(255),uint8(255)}
}

func main() {
    m := Image{}
    pic.ShowImage(m)  //调用
}

四、参考资料

https://linkscue.com/2018/02/28/go-tour-practice-image/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java 源码分析

动态规划

​ 动态规划一般来说和分治有点类似都是让他们去处理相同的子问题,但是在动态规划里面你会遇到更多的相同子问题。然后我们就会导致很多的重复计算,所以一般我们可...

3115
来自专栏懒人开发

(1)James Stewart Calculus 5th Edition:Functions and Models

1503
来自专栏kalifaの日々

POJ3684(弹性碰撞)各种wrong answer踩坑

我踩过的坑全部都写在注释里面了,供大家参考。 #include <stdio.h> #include <algorithm> #include <math.h>...

3075
来自专栏Fish

TensorFlow编程入门(一)

写在最前 深度学习辣么火,感觉应该学习学习以免以后人家讲座什么的听不懂。因此想要从应用层面出发,学习学习,那就看看怎么用tensorflow(以下简称tf)做神...

1956
来自专栏逍遥剑客的游戏开发

基于法线的边缘检测

1703
来自专栏企鹅号快讯

无人驾驶系列——深度学习笔记:Tensorflow基本概念

随着无人驾驶的火爆,深度学习在无人驾驶中的应用受到广泛关注,我在工作中对此有所接触,因此进行了相关学习和整理,给大家大家可以参考。 ? TensorFlow深度...

2526
来自专栏每日一篇技术文章

OpenGL ES _ 着色器_片断着色器详解

输入值:片段着色器接受顶点管线最终输出的迭代值,这些值包括片段的位置,已解析的主颜色和辅助颜色,一系列的纹理坐标以及片段的雾坐标距离。

2831
来自专栏简书专栏

基于tensorflow的一元二次方程回归预测

安装tensorflow命令:pip install tensorflow 下面一段代码能够成功运行,则说明安装tensorflow环境成功。

2203
来自专栏xingoo, 一个梦想做发明家的程序员

动态规划基本要素

动态规划性质: 1  最优子结构性质  2 子问题重叠性质 ----->该问题可用动态规划算法求解的基本要素 1 最优子结构 当问题的最优解包含了其子问题的最优...

21610
来自专栏xiaoxi666的专栏

最长滑道问题(非递归,C++)

题目描述请参考博客http://blog.csdn.net/sinat_30186009/article/details/52356053,在此表示感谢。

1123

扫码关注云+社区

领取腾讯云代金券