Heim  >  Artikel  >  Backend-Entwicklung  >  Lesen Sie mehrseitige TIFF-Dateien und extrahieren Sie Bilder in Golang

Lesen Sie mehrseitige TIFF-Dateien und extrahieren Sie Bilder in Golang

PHPz
PHPznach vorne
2024-02-06 11:24:09541Durchsuche

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

Frageninhalt

Wie teilt man mehrseitige TIFF-Dateien in Go in Bilder auf? DecodeAll of image/tiff gibt ein TIFF zurück, das image.image enthält. Sie wissen jedoch nicht, wie Sie die einzelnen Dateien in ein Bild umwandeln sollen?


Richtige Antwort


Da es nicht viele Informationen über das Paket gibt, das Sie in Ihrer Frage verwendet haben, gehe ich davon aus, dass Sie die github.com/chai2010/tiff 模块。它只包含 decodeall-Methode verwendet haben. Ich habe öffentliches mehrseitiges TIFF verwendet. Dann habe ich den Code aus dem Paket docs verwendet. Ich zitiere es jedenfalls hier

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)
        }
    }
}

Es erstellt mehrere tif Bilder gemäß Ihren Anforderungen. Ich hoffe, das ist es, was du meintest

Das obige ist der detaillierte Inhalt vonLesen Sie mehrseitige TIFF-Dateien und extrahieren Sie Bilder in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen