Rumah > pembangunan bahagian belakang > Golang > Baca tiff berbilang halaman dan ekstrak imej dalam golang

Baca tiff berbilang halaman dan ekstrak imej dalam golang

PHPz
Lepaskan: 2024-02-06 11:24:09
ke hadapan
609 orang telah melayarinya

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

Kandungan soalan

Bagaimana untuk membahagikan tiff berbilang halaman kepada imej dalam Go? DecodeSemua imej/tiff mengembalikan TIFF yang mengandungi image.image. Tetapi tidak tahu bagaimana untuk menukar setiap satu kepada imej?


Jawapan betul


Memandangkan tidak banyak maklumat tentang pakej yang anda gunakan dalam soalan anda, saya mengandaikan anda menggunakan kaedah github.com/chai2010/tiff 模块。它只包含 decodeall. Saya menggunakan tiff berbilang halaman awam. Kemudian saya menggunakan kod dari pakej docs. Anyway, saya citer kat sini

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)
        }
    }
}
Salin selepas log masuk

Ia mencipta berbilang tif imej mengikut keperluan anda. Saya harap ini yang anda maksudkan

Atas ialah kandungan terperinci Baca tiff berbilang halaman dan ekstrak imej dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan