Files
Jay Brown b71a28d3c0 Merged in feature/support-more-types (pull request #219)
support new types for import

* tests pass

* missing file

* bug fixes
2026-03-31 17:40:42 +00:00

93 lines
1.7 KiB
Markdown

- *Go语言QQ群: 102319854, 1055927514*
- *凹语言(凹读音“Wa”)(The Wa Programming Language): https://github.com/wa-lang/wa*
----
TIFF for Go
===========
[![Build Status](https://travis-ci.org/chai2010/tiff.svg)](https://travis-ci.org/chai2010/tiff)
[![GoDoc](https://godoc.org/github.com/chai2010/tiff?status.svg)](https://godoc.org/github.com/chai2010/tiff)
**Features:**
1. Support BigTiff
2. Support decode multiple image
3. Support decode subifd image
4. Support RGB format
5. Support Float DataType
6. More ...
Install
=======
1. `go get github.com/chai2010/tiff`
2. `go run hello.go`
Example
=======
```Go
package main
import (
"bytes"
"fmt"
"io/ioutil"
"log"
"path/filepath"
tiff "github.com/chai2010/tiff"
)
func main() {
var data []byte
var err error
var files = []string{
"./testdata/BigTIFFSamples/BigTIFFSubIFD8.tif",
"./testdata/multipage/multipage-gopher.tif",
}
for _, filename := range files {
// Load file data
if data, err = ioutil.ReadFile(filename); err != nil {
log.Fatal(err)
}
// Decode tiff
m, errors, err := tiff.DecodeAll(bytes.NewReader(data))
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.tiff", filepath.Base(filename), 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)
}
}
}
}
```
BUGS
====
Report bugs to <chaishushan@gmail.com>.
Thanks!