media

package
v0.0.0-...-fae70d7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 29, 2012 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var View = view.NewViewURLWrapper(view.RenderView(
	func(ctx *view.Context) error {
		reader, contentType, err := Config.Backend.ImageVersionReader(ctx.URLArgs[0])
		if err != nil {
			if _, ok := err.(ErrInvalidImageID); ok {
				return view.NotFound(ctx.URLArgs[0] + "/" + ctx.URLArgs[1] + " not found")
			}
			return err
		}
		_, err = io.Copy(ctx.Response, reader)
		if err != nil {
			return err
		}
		err = reader.Close()
		if err != nil {
			return err
		}
		ctx.Response.Header().Set("Content-Type", contentType)
		return nil
	},
))

Functions

func ResampleImage

func ResampleImage(m image.Image, r image.Rectangle, w, h int) image.Image

Resample returns a resampled copy of the image slice r of m. The returned image has width w and height h.

func ResizeImage

func ResizeImage(m image.Image, r image.Rectangle, w, h int) image.Image

Resize returns a scaled copy of the image slice r of m. The returned image has width w and height h.

func ValidUrlFilename

func ValidUrlFilename(filename string) string

func ViewPath

func ViewPath(name string) view.ViewPath

Types

type Backend

type Backend interface {
	LoadImage(id string) (*Image, error)
	// image.ID will be updated if empty
	SaveImage(image *Image) error

	// ImageVersionReader returns an io.ReadCloser to read the image-data
	// with the given id from the backend
	// If there is no image with the given id,
	// err will be of type ErrInvalidImageID
	ImageVersionReader(id string) (reader io.ReadCloser, ctype string, err error)

	// ImageVersionWriter returns an io.WriteCloser to write the image-data
	// to the backend. version.ID can be empty for a new image or the id
	// of an existing image. version.ID can be changed by the function call
	// regardless of the former value
	ImageVersionWriter(version *ImageVersion) (writer io.WriteCloser, err error)
}

type Configuration

type Configuration struct {
	Backend Backend
}
var Config Configuration

func (*Configuration) Close

func (self *Configuration) Close() error

func (*Configuration) Init

func (self *Configuration) Init() error

func (*Configuration) Name

func (self *Configuration) Name() string

type ErrInvalidImageID

type ErrInvalidImageID string

func (ErrInvalidImageID) Error

func (self ErrInvalidImageID) Error() string

type FormFieldFactory

type FormFieldFactory struct {
	view.FormFieldFactoryWrapper
	ImageWidgetClass string
	ThumbnailSize    int
}

func NewFormFieldFactory

func NewFormFieldFactory(wrapped view.FormFieldFactory, imageWidgetClass string, thumbnailsize int) *FormFieldFactory

func (*FormFieldFactory) CanCreateInput

func (self *FormFieldFactory) CanCreateInput(metaData *model.MetaData, form *view.Form) bool

func (*FormFieldFactory) NewInput

func (self *FormFieldFactory) NewInput(withLabel bool, metaData *model.MetaData, form *view.Form) (view.View, error)

type HorAlignment

type HorAlignment int
const (
	HorCenter HorAlignment = iota
	Left
	Right
)

type Image

type Image struct {
	ID          model.String `bson:",omitempty"`
	Description model.String
	Link        model.Url
	Versions    []ImageVersion
}

func NewImage

func NewImage(filename string, data []byte) (*Image, error)

NewImage creates a new Image and saves the original version to Config.Backend. GIF, TIFF, BMP images will be read, but written as PNG.

func (*Image) AspectRatio

func (self *Image) AspectRatio() float64

AspectRatio returns Width / Height

func (*Image) ContentType

func (self *Image) ContentType() string

func (*Image) Filename

func (self *Image) Filename() string

func (*Image) Grayscale

func (self *Image) Grayscale() bool

func (*Image) Height

func (self *Image) Height() int

func (*Image) Init

func (self *Image) Init()

func (*Image) Rectangle

func (self *Image) Rectangle() image.Rectangle

func (*Image) Thumbnail

func (self *Image) Thumbnail(size int) (im *ImageVersion, err error)

func (*Image) Version

func (self *Image) Version(width, height int, horAlign HorAlignment, verAlign VerAlignment, grayscale bool) (im *ImageVersion, err error)

func (*Image) VersionCentered

func (self *Image) VersionCentered(width, height int, grayscale bool) (im *ImageVersion, err error)

func (*Image) VersionSourceRect

func (self *Image) VersionSourceRect(sourceRect image.Rectangle, width, height int, grayscale bool, outsideColor color.Color) (im *ImageVersion, err error)

SourceRectVersion searches and returns an existing matching version, or a new one will be created and saved.

func (*Image) VersionTouchOrigFromOutside

func (self *Image) VersionTouchOrigFromOutside(width, height int, horAlign HorAlignment, verAlign VerAlignment, grayscale bool, outsideColor color.Color) (im *ImageVersion, err error)

func (*Image) VersionTouchOrigFromOutsideCentered

func (self *Image) VersionTouchOrigFromOutsideCentered(width, height int, grayscale bool, outsideColor color.Color) (im *ImageVersion, err error)

func (*Image) Width

func (self *Image) Width() int

type ImageRef

type ImageRef string

func (*ImageRef) Image

func (self *ImageRef) Image() (*Image, error)

func (*ImageRef) IsEmpty

func (self *ImageRef) IsEmpty() bool

func (*ImageRef) Required

func (self *ImageRef) Required(metaData *model.MetaData) bool

func (*ImageRef) SetString

func (self *ImageRef) SetString(str string) error

func (*ImageRef) String

func (self *ImageRef) String() string

func (*ImageRef) Validate

func (self *ImageRef) Validate(metaData *model.MetaData) error

type ImageVersion

type ImageVersion struct {
	ID           model.String `bson:",omitempty"`
	Filename     model.String
	ContentType  model.String
	SourceRect   ModelRect
	OutsideColor model.Color
	Width        model.Int
	Height       model.Int
	Grayscale    model.Bool
	// contains filtered or unexported fields
}

func (*ImageVersion) AspectRatio

func (self *ImageVersion) AspectRatio() float64

AspectRatio returns Width / Height

func (*ImageVersion) LoadImage

func (self *ImageVersion) LoadImage() (image.Image, error)

func (*ImageVersion) SaveImage

func (self *ImageVersion) SaveImage(im image.Image) error

func (*ImageVersion) SaveImageData

func (self *ImageVersion) SaveImageData(data []byte) error

func (*ImageVersion) URL

func (self *ImageVersion) URL() view.URL

func (*ImageVersion) ViewImage

func (self *ImageVersion) ViewImage(class string) *view.Image
func (self *ImageVersion) ViewImageLink(imageClass, linkClass string) *view.Link

type ModelRect

type ModelRect struct {
	MinX model.Int
	MinY model.Int
	MaxX model.Int
	MaxY model.Int
}

func (*ModelRect) Rectangle

func (self *ModelRect) Rectangle() image.Rectangle

func (*ModelRect) SetRectangle

func (self *ModelRect) SetRectangle(r image.Rectangle)

type VerAlignment

type VerAlignment int
const (
	VerCenter VerAlignment = iota
	Top
	Bottom
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL