https://github.com/solovev/gopsd
PSD parser in Go
https://github.com/solovev/gopsd
golang golang-library parser photoshop psd reader
Last synced: 13 days ago
JSON representation
PSD parser in Go
- Host: GitHub
- URL: https://github.com/solovev/gopsd
- Owner: solovev
- Created: 2015-05-18T05:46:16.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2018-12-14T12:24:59.000Z (about 7 years ago)
- Last Synced: 2025-08-13T20:13:24.640Z (6 months ago)
- Topics: golang, golang-library, parser, photoshop, psd, reader
- Language: Go
- Size: 126 KB
- Stars: 62
- Watchers: 4
- Forks: 12
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## gopsd
> Photoshop document parser in Golang
### Example
```go
package main
import (
"fmt"
"image/png"
"os"
"github.com/solovev/gopsd"
)
func main() {
doc, err := gopsd.ParseFromPath("./test.psd")
checkError(err)
os.Mkdir("./images", 0777)
for _, layer := range doc.Layers {
fmt.Println(layer.ToString())
saveAsPNG(layer)
}
}
func saveAsPNG(layer *gopsd.Layer) {
out, err := os.Create("./images/" + layer.Name + ".png")
checkError(err)
img, err := layer.GetImage()
checkError(err)
err = png.Encode(out, img)
checkError(err)
}
func checkError(err error) {
if err != nil {
fmt.Println(err)
os.Exit(1)
}
}
```
### test.psd
> 
### Result
> Background: [X: 0, Y: 0, Width: 384, Height: 512]
GrayRect: [X: -1, Y: 153, Width: 349, Height: 145]
RoundPinkRect: [X: 66, Y: 163, Width: 273, Height: 124]
Ellipse: [X: -58, Y: -89, Width: 338, Height: 212]
SOME TEXT: [X: 18, Y: 18, Width: 235, Height: 34]
| Layers |
| ------------- |
| Background |
|
|
| GrayRect |
|
|
| RoundPinkRect |
|
|
| Ellipse |
|
|
| SOME TEXT |
|
|