LK4D4 / downsize

Reduces an image to a specified file size.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

downsize

=======================================

Build Status GoDoc

Reduces an image to a specified file size.

Installation

$ go get github.com/lelenanam/downsize

Usage

import "github.com/lelenanam/downsize"

The downsize package provides a function downsize.Encode:

func Encode(w io.Writer, m image.Image, o *Options) error 

This function:

  • reduces an image's dimensions to achieve a specified file size Options.Size in bytes
  • writes result Image m to writer w with the given options
  • default parameters are used if a nil *Options is passed

Sample usage:

package main

import (
	"image"
	_ "image/gif"
	_ "image/jpeg"
	_ "image/png"
	"log"
	"os"

	"github.com/lelenanam/downsize"
)

func main() {
	file, err := os.Open("img.png")
	if err != nil {
		log.Fatal(err)
	}
	defer file.Close()

	img, format, err := image.Decode(file)
	if err != nil {
		log.Fatalf("Error: %v, cannot decode file %v\n", err, file.Name())
	}

	out, err := os.Create("resized.png")
	if err != nil {
		log.Fatal(err)
	}
	defer out.Close()

	opt := &downsize.Options{Size: 1048576, Format: format}
	if err = downsize.Encode(out, img, opt); err != nil {
		log.Fatalf("Error: %v, cannot downsize image to size: %v\n", err, opt.Size)
	}
}

License

MIT License

About

Reduces an image to a specified file size.

License:MIT License


Languages

Language:Go 100.0%