Documentation ¶
Index ¶
- Constants
- Variables
- func AddPadding(img image.Image, padding int) *image.RGBA
- func Asset(name string) ([]byte, error)
- func AssetDigest(name string) ([sha256.Size]byte, error)
- func AssetDir(name string) ([]string, error)
- func AssetInfo(name string) (os.FileInfo, error)
- func AssetNames() []string
- func AssetString(name string) (string, error)
- func CompressToFileLimits(bb *bytes.Buffer, img image.Image, bounds FileSizeLimits) error
- func CreateCircleWithPadding(img image.Image, padding int) *image.RGBA
- func Crop(img image.Image, rect image.Rectangle) (image.Image, error)
- func CropCenter(img image.Image) (image.Image, error)
- func Decode(fileName string) (image.Image, error)
- func DecodeFromURL(path string) (image.Image, error)
- func Digests() (map[string][sha256.Size]byte, error)
- func Encode(w io.Writer, img image.Image, config EncodeConfig) error
- func EncodePNG(img *image.RGBA) ([]byte, error)
- func EncodeToBestSize(bb *bytes.Buffer, img image.Image, size ResizeDimension) error
- func EncodeToLimits(bb *bytes.Buffer, img image.Image, bounds FileSizeLimits) error
- func GetImageDimensions(imgBytes []byte) (int, int, error)
- func GetMimeType(buf []byte) (string, error)
- func GetPayloadDataURI(payload []byte) (string, error)
- func GetPayloadFromURI(uri string) ([]byte, error)
- func GetProtobufImageMime(buf []byte) (string, error)
- func GetProtobufImageType(buf []byte) protobuf.ImageType
- func ImageToBytes(imagePath string) ([]byte, error)
- func MustAsset(name string) []byte
- func MustAssetString(name string) string
- func OpenAndAdjustImage(inputImage CroppedImage, crop bool) ([]byte, error)
- func PlaceCircleInCenter(paddedImg, circle *image.RGBA) *image.RGBA
- func Resize(size ResizeDimension, img image.Image) image.Image
- func ResizeImage(imgBytes []byte, width, height int) ([]byte, error)
- func ResizeTo(percent int, img image.Image) image.Image
- func RestoreAsset(dir, name string) error
- func RestoreAssets(dir, name string) error
- func ShrinkOnly(size ResizeDimension, img image.Image) image.Image
- func SuperimposeLogoOnQRImage(imageBytes []byte, qrFilepath []byte) []byte
- type Circle
- type CroppedImage
- type EncodeConfig
- type FileSizeError
- type FileSizeLimits
- type IdentityImage
- func GenerateBannerImage(filepath string, aX, aY, bX, bY int) (*IdentityImage, error)
- func GenerateIdentityImages(filepath string, aX, aY, bX, bY int) ([]IdentityImage, error)
- func GenerateIdentityImagesFromURL(url string) ([]IdentityImage, error)
- func GenerateImageVariants(cImg image.Image) ([]IdentityImage, error)
- func SampleIdentityImageForQRCode() []IdentityImage
- func SampleIdentityImages() []IdentityImage
- func (i *IdentityImage) FromProtobuf(ii *protobuf.MultiAccount_IdentityImage)
- func (i IdentityImage) GetDataURI() (string, error)
- func (i IdentityImage) GetType() (ImageType, error)
- func (i IdentityImage) Hash() []byte
- func (i IdentityImage) IsEmpty() bool
- func (i IdentityImage) MarshalJSON() ([]byte, error)
- func (i *IdentityImage) ToProtobuf() *protobuf.MultiAccount_IdentityImage
- type ImageType
- type ResizeDimension
Constants ¶
const ( MaxJpegQuality = 80 MinJpegQuality = 50 SmallDim = ResizeDimension(80) LargeDim = ResizeDimension(240) BannerDim = ResizeDimension(800) SmallDimName = "thumbnail" LargeDimName = "large" BannerIdentityName = "banner" )
const AssetDebug = false
AssetDebug is true if the assets were built with the debug flag enabled.
Variables ¶
var ( // ResizeDimensions list of all available image resize sizes ResizeDimensions = []ResizeDimension{SmallDim, LargeDim} // DimensionSizeLimit the size limits imposed on each resize dimension // Figures are based on the following sample data https://github.com/status-im/status-mobile/issues/11047#issuecomment-694970473 DimensionSizeLimit = map[ResizeDimension]FileSizeLimits{ SmallDim: { Ideal: 2560, Max: 5632, }, LargeDim: { Ideal: 16384, Max: 38400, }, } // ResizeDimensionToName maps a ResizeDimension to its assigned string name ResizeDimensionToName = map[ResizeDimension]string{ SmallDim: SmallDimName, LargeDim: LargeDimName, } // NameToResizeDimension maps a string name to its assigned ResizeDimension NameToResizeDimension = map[string]ResizeDimension{ SmallDimName: SmallDim, LargeDimName: LargeDim, } )
Functions ¶
func Asset ¶ added in v0.135.0
Asset loads and returns the asset for the given name. It returns an error if the asset could not be found or could not be loaded.
func AssetDigest ¶ added in v0.135.0
AssetDigest returns the digest of the file with the given name. It returns an error if the asset could not be found or the digest could not be loaded.
func AssetDir ¶ added in v0.135.0
AssetDir returns the file names below a certain directory embedded in the file by go-bindata. For example if you run go-bindata on data/... and data contains the following hierarchy:
data/ foo.txt img/ a.png b.png
then AssetDir("data") would return []string{"foo.txt", "img"}, AssetDir("data/img") would return []string{"a.png", "b.png"}, AssetDir("foo.txt") and AssetDir("notexist") would return an error, and AssetDir("") will return []string{"data"}.
func AssetInfo ¶ added in v0.135.0
AssetInfo loads and returns the asset info for the given name. It returns an error if the asset could not be found or could not be loaded.
func AssetNames ¶ added in v0.135.0
func AssetNames() []string
AssetNames returns the names of the assets.
func AssetString ¶ added in v0.135.0
AssetString returns the asset contents as a string (instead of a []byte).
func CompressToFileLimits ¶ added in v0.108.2
CompressToFileLimits takes an image.Image and analyses the pixel dimensions, if the longest side is greater than the `longSideMax` image.Image will be resized, before compression begins. Next the image.Image is repeatedly encoded and resized until the data fits within the given FileSizeLimits. There is no limit on the number of times the cycle is performed, the image.Image is reduced to 95% of its size at the end of every round the file size exceeds the given limits.
func CreateCircleWithPadding ¶ added in v0.154.1
func CropCenter ¶ added in v0.87.2
CropCenter takes an image, usually downloaded from a URL If the image is square, the full image is returned If the image is rectangular, the largest central square is returned calculations at _docs/image-center-crop-calculations.png
func EncodeToBestSize ¶
func EncodeToLimits ¶ added in v0.100.0
func GetImageDimensions ¶ added in v0.135.0
func GetMimeType ¶
func GetPayloadDataURI ¶
func GetPayloadFromURI ¶ added in v0.108.2
func GetProtobufImageMime ¶ added in v0.129.3
func GetProtobufImageType ¶ added in v0.129.3
func ImageToBytes ¶ added in v0.135.0
func MustAsset ¶ added in v0.135.0
MustAsset is like Asset but panics when Asset would return an error. It simplifies safe initialization of global variables.
func MustAssetString ¶ added in v0.135.0
MustAssetString is like AssetString but panics when Asset would return an error. It simplifies safe initialization of global variables.
func OpenAndAdjustImage ¶ added in v0.129.3
func OpenAndAdjustImage(inputImage CroppedImage, crop bool) ([]byte, error)
func PlaceCircleInCenter ¶ added in v0.135.0
func ResizeImage ¶ added in v0.135.0
func RestoreAsset ¶ added in v0.135.0
RestoreAsset restores an asset under the given directory.
func RestoreAssets ¶ added in v0.135.0
RestoreAssets restores an asset under the given directory recursively.
func ShrinkOnly ¶ added in v0.100.0
func ShrinkOnly(size ResizeDimension, img image.Image) image.Image
func SuperimposeLogoOnQRImage ¶ added in v0.135.0
Types ¶
type Circle ¶ added in v0.135.0
type Circle struct {
X, Y, R int
}
func (*Circle) ColorModel ¶ added in v0.135.0
type CroppedImage ¶ added in v0.100.0
type EncodeConfig ¶
type EncodeConfig struct {
Quality int
}
type FileSizeError ¶ added in v0.108.2
type FileSizeError struct {
// contains filtered or unexported fields
}
func (*FileSizeError) Error ¶ added in v0.108.2
func (e *FileSizeError) Error() string
type FileSizeLimits ¶ added in v0.108.2
func GetBannerDimensionLimits ¶ added in v0.100.0
func GetBannerDimensionLimits() FileSizeLimits
type IdentityImage ¶
type IdentityImage struct { KeyUID string `json:"keyUID"` Name string `json:"name"` Payload []byte `json:"payload"` Width int `json:"width"` Height int `json:"height"` FileSize int `json:"fileSize"` ResizeTarget int `json:"resizeTarget"` Clock uint64 `json:"clock"` LocalURL string `json:"localUrl,omitempty"` }
func GenerateBannerImage ¶ added in v0.100.0
func GenerateBannerImage(filepath string, aX, aY, bX, bY int) (*IdentityImage, error)
func GenerateIdentityImages ¶
func GenerateIdentityImages(filepath string, aX, aY, bX, bY int) ([]IdentityImage, error)
func GenerateIdentityImagesFromURL ¶ added in v0.87.2
func GenerateIdentityImagesFromURL(url string) ([]IdentityImage, error)
func GenerateImageVariants ¶ added in v0.87.2
func GenerateImageVariants(cImg image.Image) ([]IdentityImage, error)
func SampleIdentityImageForQRCode ¶ added in v0.135.0
func SampleIdentityImageForQRCode() []IdentityImage
func SampleIdentityImages ¶
func SampleIdentityImages() []IdentityImage
func (*IdentityImage) FromProtobuf ¶ added in v0.106.1
func (i *IdentityImage) FromProtobuf(ii *protobuf.MultiAccount_IdentityImage)
func (IdentityImage) GetDataURI ¶
func (i IdentityImage) GetDataURI() (string, error)
func (IdentityImage) GetType ¶
func (i IdentityImage) GetType() (ImageType, error)
func (IdentityImage) Hash ¶
func (i IdentityImage) Hash() []byte
func (IdentityImage) IsEmpty ¶ added in v0.106.1
func (i IdentityImage) IsEmpty() bool
func (IdentityImage) MarshalJSON ¶
func (i IdentityImage) MarshalJSON() ([]byte, error)
func (*IdentityImage) ToProtobuf ¶ added in v0.106.1
func (i *IdentityImage) ToProtobuf() *protobuf.MultiAccount_IdentityImage
type ResizeDimension ¶
type ResizeDimension uint