如何在 Go 中將多頁 tiff 分割成影像? image/tiff 的 DecodeAll 傳回 TIFF,其中包含 image.image。但不知道如何將每個轉換為圖像?
由於關於您在問題中使用的軟體包的資訊不多,我假設您使用了github.com/chai2010/tiff
模組。它只包含 decodeall
方法。我使用了公開的多頁tiff。然後我使用了套件文檔內的程式碼。無論如何,我在這裡引用它
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
圖像。我希望這就是你的意思
以上是在 golang 中讀取多頁 tiff 並提取圖像的詳細內容。更多資訊請關注PHP中文網其他相關文章!