mirror of
https://github.com/talgo-cloud/bimg.git
synced 2026-03-07 21:48:13 -08:00
refactor(type): simplify image type matching
This commit is contained in:
parent
d06464fca2
commit
9342d6482a
3 changed files with 23 additions and 29 deletions
|
|
@ -68,7 +68,7 @@ func Metadata(buf []byte) (ImageMetadata, error) {
|
|||
Alpha: vipsHasAlpha(image),
|
||||
Profile: vipsHasProfile(image),
|
||||
Space: vipsSpace(image),
|
||||
Type: getImageTypeName(imageType),
|
||||
Type: ImageTypeName(imageType),
|
||||
}
|
||||
|
||||
return metadata, nil
|
||||
|
|
|
|||
48
type.go
48
type.go
|
|
@ -11,6 +11,15 @@ const (
|
|||
MAGICK
|
||||
)
|
||||
|
||||
// Pairs of image type and its name
|
||||
var ImageTypes = map[ImageType]string{
|
||||
JPEG: "jpeg",
|
||||
PNG: "png",
|
||||
WEBP: "webp",
|
||||
TIFF: "tiff",
|
||||
MAGICK: "magick",
|
||||
}
|
||||
|
||||
// Determines the image type format (jpeg, png, webp or tiff)
|
||||
func DetermineImageType(buf []byte) ImageType {
|
||||
return vipsImageType(buf)
|
||||
|
|
@ -18,43 +27,28 @@ func DetermineImageType(buf []byte) ImageType {
|
|||
|
||||
// Determines the image type format by name (jpeg, png, webp or tiff)
|
||||
func DetermineImageTypeName(buf []byte) string {
|
||||
return getImageTypeName(vipsImageType(buf))
|
||||
return ImageTypeName(vipsImageType(buf))
|
||||
}
|
||||
|
||||
// Check if a given image type is supported
|
||||
func IsTypeSupported(t ImageType) bool {
|
||||
return t == JPEG || t == PNG || t == WEBP || t == MAGICK
|
||||
return ImageTypes[t] != ""
|
||||
}
|
||||
|
||||
// Check if a given image type name is supported
|
||||
func IsTypeNameSupported(t string) bool {
|
||||
return t == "jpeg" ||
|
||||
t == "jpg" ||
|
||||
t == "png" ||
|
||||
t == "webp" ||
|
||||
t == "magick"
|
||||
for _, name := range ImageTypes {
|
||||
if name == t {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func getImageTypeName(code ImageType) string {
|
||||
imageType := "unknown"
|
||||
|
||||
switch {
|
||||
case code == JPEG:
|
||||
imageType = "jpeg"
|
||||
break
|
||||
case code == WEBP:
|
||||
imageType = "webp"
|
||||
break
|
||||
case code == PNG:
|
||||
imageType = "png"
|
||||
break
|
||||
case code == TIFF:
|
||||
imageType = "tiff"
|
||||
break
|
||||
case code == MAGICK:
|
||||
imageType = "magick"
|
||||
break
|
||||
func ImageTypeName(t ImageType) string {
|
||||
imageType := ImageTypes[t]
|
||||
if imageType == "" {
|
||||
return "unknown"
|
||||
}
|
||||
|
||||
return imageType
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ func TestIsTypeNameSupported(t *testing.T) {
|
|||
name string
|
||||
expected bool
|
||||
}{
|
||||
{"jpg", true},
|
||||
{"jpeg", true},
|
||||
{"png", true},
|
||||
{"webp", true},
|
||||
{"gif", false},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue