You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
5.3 KiB
60 lines
5.3 KiB
package model
|
|
|
|
import "mime/multipart"
|
|
|
|
type CropParam struct {
|
|
X float64 `json:"x"`
|
|
Y float64 `json:"y"`
|
|
W float64 `json:"w"`
|
|
H float64 `json:"h"`
|
|
}
|
|
type ImageParams struct {
|
|
Format string `form:"format" json:"format" binding:"required" example:"压缩后的文件后缀,可选:jpg、png、gif、webp、heic" `
|
|
ProcessImageName string `form:"processImageName" json:"processImageName" example:"给压缩后的图片取名"`
|
|
ProcessImageSuffix string `form:"processImageSuffix" json:"processImageSuffix" example:"从原图文件名加后缀,如_q.webp 则生成xxx_q.webp的文件。当processImageName非空时忽略此参数"`
|
|
Crop *CropParam `form:"crop" json:"crop"` //图片裁剪,json格式字符串: {\"x\":0,\"y\":0,\"w\":100,\"h\":100} ,以 x,y为左上角的基点,按长宽裁剪。如果设置了ratio,height或width,则先裁剪再缩放(把裁剪后的图当成原图)
|
|
Ratio float32 `form:"ratio" json:"ratio" example:"0.9"` //缩放比例
|
|
Height uint `form:"height" json:"height"` //高
|
|
Width uint `form:"width" json:"width"` //宽
|
|
MaxHeight uint `form:"maxHeight" json:"maxHeight"` //当高超过x时,等比缩放至高=h.(height或width有值时忽略此参数)
|
|
MaxWidth uint `form:"maxWidth" json:"maxWidth"` //当宽超过x时,等比缩放至宽=h.(height或width或maxHeight有值时忽略此参数)
|
|
Reshape string `form:"reshape" json:"reshape" example:"高:宽,如4:3,16:9等,将原图裁剪取中间位置成固定比例的图片"`
|
|
ImageSize string `form:"imageSize" json:"imageSize" example:"压缩后的文件大小限制。可能会有偏差,如限制400k,结果生成405k"`
|
|
Quality uint `form:"quality" json:"quality"` //压缩质量1-101,数字越高质量越高文件越大,webp和heic建议=10,默认=0时无损压缩
|
|
Progressive bool `form:"progressive" json:"progressive"` //=true,渐进式。jpg、png、gif这三种图片可以设置为渐进式
|
|
}
|
|
|
|
type CompressImageRequest struct {
|
|
File *multipart.FileHeader `form:"file" swaggerignore:"true"`
|
|
ImageUrl string `form:"imageUrl" example:"图片url地址,file和imageUrl二选一"`
|
|
OverwriteOriginImage bool `form:"overwriteOriginImage"` //(有原图url时)用压缩后的图片覆盖源文件。默认=false。=true时忽略processImageBucket、processImageName、processImageSuffix等字段
|
|
OverwriteProcessImage bool `form:"overwriteProcessImage"` //对压缩图片有命名规则时,覆盖同名文件。默认=false
|
|
IgnoreOriginImage bool `form:"ignoreOriginImage"` //上传图片时,选择是否保存原图;如果有原图url,忽略此参数。默认=false,保存原图;=true时忽略原图
|
|
OriginImageName string `form:"originImageName" example:"给原始图片取名"`
|
|
ProcessImageBucket string `form:"processImageBucket" json:"processImageBucket" example:"转码后的图片所在空间。上传文件时默认为环境空间;有url时默认与源图片空间相同。"`
|
|
ImageParams
|
|
}
|
|
type CompressImagesRequest struct {
|
|
File *multipart.FileHeader `form:"file" swaggerignore:"true"`
|
|
ImageUrl string `form:"imageUrl" example:"图片url地址,file和imageUrl二选一"`
|
|
IgnoreOriginImage bool `form:"ignoreOriginImage"` //上传图片时,选择是否保存原图;如果有原图url,忽略此参数。默认=false,保存原图;=true时忽略原图
|
|
OriginImageName string `form:"originImageName" example:"给原始图片取名"`
|
|
ProcessParams string `form:"processParams" json:"processParams"` // 压缩图片参数
|
|
ProcessImageBucket string `form:"processImageBucket" json:"processImageBucket" example:"转码后的图片所在空间。上传文件时默认为环境空间;有url时默认与源图片空间相同。"`
|
|
}
|
|
type ImageCompressResponse struct {
|
|
OriginImageUrl string `json:"originImageUrl,omitempty" example:"原图地址"`
|
|
UploadFileName string `json:"uploadFileName,omitempty" example:"上传文件地址"`
|
|
OriginFileSize int `json:"originFileSize,omitempty"` //原文件大小
|
|
OriginWidth uint `json:"originWidth,omitempty"` //原图片宽度
|
|
OriginHeight uint `json:"originHeight,omitempty"` //原图片高度
|
|
ProcessImage map[string]string `json:"processImage,omitempty"` //处理后图片信息,url,width,height,fileSize
|
|
}
|
|
type ImagesCompressResponse struct {
|
|
OriginImageUrl string `json:"originImageUrl,omitempty" example:"原图地址"`
|
|
UploadFileName string `json:"uploadFileName,omitempty" example:"上传文件地址"`
|
|
OriginFileSize int `json:"originFileSize,omitempty"` //原文件大小
|
|
OriginWidth uint `json:"originWidth,omitempty"` //原图片宽度
|
|
OriginHeight uint `json:"originHeight,omitempty"` //原图片高度
|
|
ProcessImages []map[string]string `json:"processImages,omitempty"` //处理后图片信息,url,width,height,fileSize
|
|
}
|
|
|