Skip to content

Commit 5233194

Browse files
committed
Minor cleanup
1 parent 967ed9e commit 5233194

File tree

1 file changed

+36
-27
lines changed

1 file changed

+36
-27
lines changed

main.go

+36-27
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,10 @@ func main() {
5151

5252
func run(ctx context.Context, name, version string, cliargs []string) error {
5353
args := &Args{
54+
verbose: true,
5455
bg: colors.FromColor(color.Transparent),
5556
vipsConcurrency: runtime.NumCPU(),
56-
pdfDPI: 300,
57+
dpi: 300,
5758
logger: func(string, ...interface{}) {},
5859
}
5960
var (
@@ -101,7 +102,7 @@ func run(ctx context.Context, name, version string, cliargs []string) error {
101102
// flags.BoolVar(&args.diff, "diff", args.diff, "toggle diff mode")
102103
flags.UintVarP(&args.width, "width", "W", args.width, "set width")
103104
flags.UintVarP(&args.height, "height", "H", args.height, "set height")
104-
flags.UintVar(&args.pdfDPI, "dpi", args.pdfDPI, "set dpi")
105+
flags.UintVar(&args.dpi, "dpi", args.dpi, "set dpi")
105106
// completions
106107
flags.BoolVar(&bashCompletion, "completion-script-bash", false, "output bash completion script and exit")
107108
flags.BoolVar(&zshCompletion, "completion-script-zsh", false, "output zsh completion script and exit")
@@ -124,7 +125,7 @@ type Args struct {
124125
vipsConcurrency int
125126
width uint
126127
height uint
127-
pdfDPI uint
128+
dpi uint
128129
scaleMode resvg.ScaleMode
129130

130131
logger func(string, ...interface{})
@@ -304,6 +305,26 @@ func (args *Args) openMarkdown(name string) (string, image.Image, error) {
304305
return args.vipsExport(v)
305306
}
306307

308+
// vipsInit initializes the vip package.
309+
func (args *Args) vipsInit() {
310+
start := time.Now()
311+
level := vips.LogLevelError
312+
if args.verbose {
313+
level = vips.LogLevelDebug
314+
}
315+
vips.LoggingSettings(func(domain string, level vips.LogLevel, msg string) {
316+
args.logger("vips %s: %s %s", vipsLevel(level), domain, strings.TrimSpace(msg))
317+
}, level)
318+
var config *vips.Config
319+
if args.vipsConcurrency != 0 {
320+
config = &vips.Config{
321+
ConcurrencyLevel: args.vipsConcurrency,
322+
}
323+
}
324+
vips.Startup(config)
325+
args.logger("vips init: %v", time.Now().Sub(start))
326+
}
327+
307328
// vipsOpenReader opens a vips image from the reader.
308329
func (args *Args) vipsOpenReader(r io.Reader, name string) (*vips.ImageRef, error) {
309330
args.once.Do(args.vipsInit)
@@ -315,8 +336,8 @@ func (args *Args) vipsOpenReader(r io.Reader, name string) (*vips.ImageRef, erro
315336
args.logger("load file: %v", time.Now().Sub(start))
316337
start = time.Now()
317338
p := vips.NewImportParams()
318-
if args.pdfDPI != 0 {
319-
p.Density.Set(int(args.pdfDPI))
339+
if args.dpi != 0 {
340+
p.Density.Set(int(args.dpi))
320341
}
321342
v, err := vips.LoadImageFromBuffer(buf, p)
322343
if err != nil {
@@ -351,34 +372,22 @@ func (args *Args) vipsExport(v *vips.ImageRef) (string, image.Image, error) {
351372
}
352373
}
353374
start = time.Now()
354-
img, err := v.ToImage(&vips.ExportParams{
355-
Format: vips.ImageTypePNG,
375+
buf, _, err := v.ExportPng(&vips.PngExportParams{
376+
Filter: vips.PngFilterNone,
377+
Interlace: false,
378+
Palette: true,
379+
// Bitdepth: 4,
356380
})
357381
if err != nil {
358382
return "", nil, fmt.Errorf("vips can't export %s: %w", name, err)
359383
}
360384
args.logger("vips export: %v", time.Now().Sub(start))
361-
return "png", img, nil
362-
}
363-
364-
// vipsInit initializes the vip package.
365-
func (args *Args) vipsInit() {
366-
start := time.Now()
367-
level := vips.LogLevelError
368-
if args.verbose {
369-
level = vips.LogLevelDebug
370-
}
371-
vips.LoggingSettings(func(domain string, level vips.LogLevel, msg string) {
372-
args.logger("vips %s: %s %s", vipsLevel(level), domain, strings.TrimSpace(msg))
373-
}, level)
374-
var config *vips.Config
375-
if args.vipsConcurrency != 0 {
376-
config = &vips.Config{
377-
ConcurrencyLevel: args.vipsConcurrency,
378-
}
385+
img, _, err := image.Decode(bytes.NewReader(buf))
386+
if err != nil {
387+
return "", nil, fmt.Errorf("can't decode vips image %s: %w", name, err)
379388
}
380-
vips.Startup(config)
381-
args.logger("vips init: %v", time.Now().Sub(start))
389+
args.logger("image type: %T", img)
390+
return "png", img, nil
382391
}
383392

384393
// addBackground adds a background to a image.

0 commit comments

Comments
 (0)