首页 > 其他分享 >Go语言指南练习:图像

Go语言指南练习:图像

时间:2024-02-17 19:23:24浏览次数:28  
标签:指南 color image 练习 uint8 func Go Image 255

题目:
还记得之前编写的图片生成器吗?我们再来编写另外一个,不过这次它将会返回一个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}

package main

import (
    "golang.org/x/tour/pic"
    "image/color"
    "image"
)

type Image struct{
    w, h int//宽和高
}

func (i Image) ColorModel() color.Model {
    return color.RGBAModel
}

func (i Image) Bounds() image.Rectangle {
    return image.Rect(0, 0, i.w, i.h)//从i中获取边界
}

func (i Image) At(x, y int) color.Color {
    return color.RGBA{uint8(x), uint8(y), uint8(255), uint8(255)}
}

func main() {
    m := Image{250, 250}
    pic.ShowImage(m)
}

标签:指南,color,image,练习,uint8,func,Go,Image,255
From: https://www.cnblogs.com/nephna/p/18018236

相关文章

  • Asp.Net Core访问阿里云MongoDB云数据库
    Asp.NetCore访问阿里云MongoDB云数据库选择.NetCore技术栈开发跨平台软件解决方案,投入少,产出快,有助于企业内部降本增效。MongoDB的实体类增加字段不用迁移数据库,适合需求经常变化的应用场景。如果是企业内部小型应用,拉一个MongoDB容器即可,如果要进一步考虑多节点冗余,高可用,异地......
  • 创新技巧|迁移到 Google Analytics 4 时如何保存历史 Universal Analytics 数据
    GoogleUniversalAnalytics从2023年7月起停止收集数据(除了付费GA360之外)。它被GoogleAnalytics4取代。为此,不少用户疑惑:是否可以将累积(历史)数据从GoogleAnalyticsUniversal传输到GoogleAnalytics4?您无法将数据传输到新的GA4界面。但您可以将数据保存在Goog......
  • kali开机时间巨长,logo画面处卡住。(调整交换分区后)
    目前大致方法有2方法1链接地址方法2链接地址......
  • Go语言指南练习:rot13Reader
    题目:有种常见的模式是一个io.Reader包装另一个io.Reader,然后通过某种方式修改其数据流。例如,gzip.NewReader函数接受一个io.Reader(已压缩的数据流)并返回一个同样实现了io.Reader的*gzip.Reader(解压后的数据流)。编写一个实现了io.Reader并从另一个io.Reader中读取数据的rot13Rea......
  • Go语言指南练习:Reader
    题目:实现一个Reader类型,它产生一个ASCII字符'A'的无限流。packagemainimport"golang.org/x/tour/reader"typeMyReaderstruct{}//TODO:给MyReader添加一个Read([]byte)(int,error)方法func(aMyReader)Read(b[]byte)(int,error){b[0]='A&......
  • Go语言指南练习:错误
    题目:从之前的练习中复制Sqrt函数,修改它使其返回error值。Sqrt接受到一个负数时,应当返回一个非nil的错误值。复数同样也不被支持。创建一个新的类型typeErrNegativeSqrtfloat64并为其实现func(eErrNegativeSqrt)Error()string方法使其拥有error值,通过ErrNegativeSqrt(......
  • sed练习
    sed重点命令、语法命令格式:sed[options][sed-commands][input-file]sed[选项][sed命令][输入文件]选项:-n取消默认的sed输出,常与sed命令的p连用-r使用拓展正则-i将修改结果写入文件命令:p输出处理过的行aappend追加iins......
  • golang中判断字符串是否为空行
    在使用golang的tail库读文件时,可能会出现读入一行空行的情况,我们有时候会想过滤掉这一行记录。golang中如何判断一行字符串是否为空行?使用strings.Trim()去除尾部换行符,再用len()判断长度是否为0即可。示例:iflen(strings.Trim(strings.Trim(line.Text,"\n"),"\r"))==0{......
  • Go语言指南练习:Stringer
    题目:通过让IPAddr类型实现fmt.Stringer来打印点号分隔的地址。例如,IPAddr{1,2,3,4}应当打印为"1.2.3.4"。packagemainimport"fmt"typeIPAddr[4]byte//TODO:给IPAddr添加一个"String()string"方法func(aIPAddr)String()string{returnfmt.Spr......
  • matlab练习程序(Schur补)
    Schur补是一种矩阵分解方法,通过将一个大的矩阵分解为几个较小的矩阵来简化计算,通常能够提高矩阵求逆的速度。对于形如下面的矩阵:可以把矩阵划分为左上、右上、左下、右下四个分块矩阵。得到矩阵:根据A和D的奇异性,可以分两种情况。如果A可逆,则有:如果D可逆,则有:公式两边同......