本文整理匯總了Golang中github.com/kitwalker12/fotomat/vips.Image.Xsize方法的典型用法代碼示例。如果您正苦於以下問題:Golang Image.Xsize方法的具體用法?Golang Image.Xsize怎麽用?Golang Image.Xsize使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/kitwalker12/fotomat/vips.Image
的用法示例。
在下文中一共展示了Image.Xsize方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: MetadataImage
// MetadataImage returns Metadata from an Image. Format is always unset.
func MetadataImage(image *vips.Image) Metadata {
o := DetectOrientation(image)
w, h := o.Dimensions(image.Xsize(), image.Ysize())
if w <= 0 || h <= 0 {
panic("Invalid image dimensions.")
}
return Metadata{Width: w, Height: h, Orientation: o, HasAlpha: image.HasAlpha()}
}
示例2: jpegSave
func jpegSave(image *vips.Image, options SaveOptions) ([]byte, error) {
// JPEG interlace saves 2-3%, but incurs a few hundred bytes of
// overhead, requires buffering the image completely in RAM for
// encoding and decoding, and takes over 3x the CPU. This isn't
// usually beneficial on small images and is too expensive for large
// images.
pixels := image.Xsize() * image.Ysize()
interlace := pixels >= 200*200 && pixels <= 1024*1024
// Strip and optimize both save space, enable them.
return image.JpegsaveBuffer(true, options.Quality, true, interlace)
}
示例3: useLossless
func useLossless(image *vips.Image, options SaveOptions) bool {
if !options.Lossless {
return false
}
if !options.LossyIfPhoto {
return true
}
// Mobile devices start being unwilling to load >= 3 megapixel PNGs.
// Also we don't want to bother to edge detect on large images.
if image.Xsize()*image.Ysize() >= 3*1024*1024 {
return false
}
// Take a histogram of a Sobel edge detect of our image. What's the
// highest number of histogram values in a row that are more than 1%
// of the maximum value? Above 16 indicates a photo.
metric, err := image.PhotoMetric(0.01)
return err != nil || metric < 16
}