Maison > développement back-end > Golang > Lire un tiff de plusieurs pages et extraire des images dans Golang

Lire un tiff de plusieurs pages et extraire des images dans Golang

PHPz
Libérer: 2024-02-06 11:24:09
avant
617 Les gens l'ont consulté

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

Contenu de la question

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 ?


Bonne réponse


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)
        }
    }
}
Copier après la connexion

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!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal