如何在go中将多页tiff分割成图像?image/tiff的DecodeAll返回TIFF,其中包含image. image。但不知道如何将它们转换成图像?
pqwbnv8z1#
由于没有太多关于您在问题中使用的包的信息,我将假设您使用github.com/chai2010/tiff模块。它只包含DecodeAll方法。我使用了一个多页的tiff,这是公开可用的。然后我使用了包文档中的代码。不管怎样我在这里引用
github.com/chai2010/tiff
DecodeAll
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: %v\n", 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 ok\n", newname) } } }
它按照您的要求创建了多个tif图像。我希望你是这个意思
tif
1条答案
按热度按时间pqwbnv8z1#
由于没有太多关于您在问题中使用的包的信息,我将假设您使用
github.com/chai2010/tiff
模块。它只包含DecodeAll
方法。我使用了一个多页的tiff,这是公开可用的。然后我使用了包文档中的代码。不管怎样我在这里引用它按照您的要求创建了多个
tif
图像。我希望你是这个意思