modulepackage
0.0.0-20240313222548-0fde9d61c451
Repository: https://github.com/ekonechny/gopenslide.git
Documentation: pkg.go.dev
# README
OpenSlide binding for go
This library provides unofficial Golang bindings to OpenSlide and some helpers such as the deepzoom generator.
Installation
go get github.com/ekonechny/gopenslide
OSX
Install openslide
brew install OpenSlide
Create links
ln -s /opt/homebrew/include/openslide/openslide.h /usr/local/include
ln -s /opt/homebrew/include/openslide/openslide-features.h /usr/local/include
Export variables
export CPATH=/opt/homebrew/include
export LIBRARY_PATH=/opt/homebrew/lib
Linux
Export variables
export CGO_CFLAGS="-I/usr/local/include/openslide"
export LD_LIBRARY_PATH=/usr/local/lib
Usage
package main
import (
"context"
"flag"
"fmt"
"image/jpeg"
"log"
"os"
"github.com/ekonechny/gopenslide"
)
func main() {
var fp string
flag.StringVar(&fp, "file", "", "file for deepzoom")
flag.Parse()
f, err := gopenslide.Open(fp)
if err != nil {
log.Fatal(err)
}
defer f.Close()
generator := gopenslide.NewDeepZoomGenerator(f, 512, 0, false)
for tile := range generator.Iter(context.Background()) {
if err := os.MkdirAll(fmt.Sprintf("tiles/%d", tile.Level), 0777); err != nil {
log.Fatal(err)
}
image, err := generator.Read(context.Background(), tile)
if err != nil {
log.Fatal(err)
}
tf, err := os.OpenFile(fmt.Sprintf("tiles/%d/%d_%d.jpg", tile.Level, tile.Col, tile.Row), os.O_CREATE|os.O_RDWR, 0777)
if err != nil {
log.Fatal(err)
}
if err = jpeg.Encode(tf, image, &jpeg.Options{
Quality: 95,
}); err != nil {
log.Fatal(err)
}
if err = tf.Close(); err != nil {
log.Fatal(err)
}
}
}
# Packages
No description provided by the author
# Functions
NewDeepZoomGenerator creates a DeepZoomGenerator wrapping an OpenSlide object.
No description provided by the author
ReadTileFromSlide Return an RGB Image for a tile.
# Constants
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Variables
No description provided by the author
# Interfaces
No description provided by the author