最新公告
  • 欢迎您光临码农资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!加入我们
  • 在 golang 中读取多页 tiff 并提取图像

    在 golang 中读取多页 tiff 并提取图像

    问题内容

    如何在 Go 中将多页 tiff 分割成图像? image/tiff 的 DecodeAll 返回 TIFF,其中包含 image.image。但不知道如何将每个转换为图像?

    正确答案

    由于关于您在问题中使用的软件包的信息不多,我假设您使用了 github.com/chai2010/tiff 模块。它只包含 decodeall 方法。我使用了公开的多页tiff。然后我使用了包文档内的代码。无论如何,我在这里引用它

    package main
    
    import (
        "bytes"
        "fmt"
        "io/ioutil"
        "log"
        "path/filepath"
    
        "github.com/chai2010/tiff"
    )
    
    func main() {
        b, err := ioutil.ReadFile("Multi_page24bpp.tif")
        if err != nil {
            panic(err)
        }
    
        // Decode tiff
        m, errors, err := tiff.DecodeAll(bytes.NewReader(b))
        if err != nil {
            log.Println(err)
        }
    
        // Encode tiff
        for i := 0; i < len(m); i++ {
            for j := 0; j < len(m[i]); j++ {
                newname := fmt.Sprintf("%s-%02d-%02d.tif", filepath.Base("Multi_page24bpp.tif"), i, j)
                if errors[i][j] != nil {
                    log.Printf("%s: %vn", newname, err)
                    continue
                }
    
                var buf bytes.Buffer
                if err = tiff.Encode(&buf, m[i][j], nil); err != nil {
                    log.Fatal(err)
                }
                if err = ioutil.WriteFile(newname, buf.Bytes(), 0666); err != nil {
                    log.Fatal(err)
                }
                fmt.Printf("Save %s okn", newname)
            }
        }
    }

    它按照您的要求创建了多个 tif 图像。我希望这就是你的意思

    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
    如有侵权请发送邮件至1943759704@qq.com删除

    码农资源网 » 在 golang 中读取多页 tiff 并提取图像
    • 7会员总数(位)
    • 25846资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 293稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情