Maison >développement back-end >Golang >Lire un tiff de plusieurs pages et extraire des images dans Golang
Comment diviser un tiff de plusieurs pages en images dans Go ? DecodeAll of image/tiff renvoie un TIFF contenant image.image. Mais vous ne savez pas comment convertir chacun en image ?
Comme il n'y a pas beaucoup d'informations sur le package que vous avez utilisé dans votre question, je suppose que vous avez utilisé la méthode github.com/chai2010/tiff
模块。它只包含 decodeall
. J'ai utilisé un tiff public de plusieurs pages. Ensuite, j'ai utilisé le code du package docs. Quoi qu'il en soit, je le cite ici
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) } } }
Il crée plusieurs tif
images selon vos besoins. J'espère que c'est ce que tu voulais dire
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!