[PLT-6496] Remove System Console and config settings for image height and width (#6688)
* remove System Console and config settings for image height and width * add constants and update config.json * updated as per review
Этот коммит содержится в:
коммит произвёл
Harrison Healey
родитель
e1168ab7cc
Коммит
648f333850
@@ -245,12 +245,6 @@ func trackConfig() {
|
||||
"driver_name": utils.Cfg.FileSettings.DriverName,
|
||||
"amazon_s3_ssl": *utils.Cfg.FileSettings.AmazonS3SSL,
|
||||
"amazon_s3_signv2": *utils.Cfg.FileSettings.AmazonS3SignV2,
|
||||
"thumbnail_width": utils.Cfg.FileSettings.ThumbnailWidth,
|
||||
"thumbnail_height": utils.Cfg.FileSettings.ThumbnailHeight,
|
||||
"preview_width": utils.Cfg.FileSettings.PreviewWidth,
|
||||
"preview_height": utils.Cfg.FileSettings.PreviewHeight,
|
||||
"profile_width": utils.Cfg.FileSettings.ProfileWidth,
|
||||
"profile_height": utils.Cfg.FileSettings.ProfileHeight,
|
||||
"max_file_size": *utils.Cfg.FileSettings.MaxFileSize,
|
||||
})
|
||||
|
||||
|
||||
23
app/file.go
23
app/file.go
@@ -53,7 +53,10 @@ const (
|
||||
RotatedCCWMirrored = 7
|
||||
RotatedCW = 8
|
||||
|
||||
MaxImageSize = 6048 * 4032 // 24 megapixels, roughly 36MB as a raw image
|
||||
MaxImageSize = 6048 * 4032 // 24 megapixels, roughly 36MB as a raw image
|
||||
IMAGE_THUMBNAIL_PIXEL_WIDTH = 120
|
||||
IMAGE_THUMBNAIL_PIXEL_HEIGTH = 100
|
||||
IMAGE_PREVIEW_PIXEL_WIDTH = 1024
|
||||
)
|
||||
|
||||
// Similar to s3.New() but allows initialization of signature v2 or signature v4 client.
|
||||
@@ -553,18 +556,13 @@ func getImageOrientation(input io.Reader) (int, error) {
|
||||
}
|
||||
|
||||
func generateThumbnailImage(img image.Image, thumbnailPath string, width int, height int) {
|
||||
thumbWidth := float64(utils.Cfg.FileSettings.ThumbnailWidth)
|
||||
thumbHeight := float64(utils.Cfg.FileSettings.ThumbnailHeight)
|
||||
imgWidth := float64(width)
|
||||
imgHeight := float64(height)
|
||||
|
||||
var thumbnail image.Image
|
||||
if imgHeight < thumbHeight && imgWidth < thumbWidth {
|
||||
if height < IMAGE_THUMBNAIL_PIXEL_HEIGTH && width < IMAGE_THUMBNAIL_PIXEL_WIDTH {
|
||||
thumbnail = img
|
||||
} else if imgHeight/imgWidth < thumbHeight/thumbWidth {
|
||||
thumbnail = imaging.Resize(img, 0, utils.Cfg.FileSettings.ThumbnailHeight, imaging.Lanczos)
|
||||
} else if height/width < IMAGE_THUMBNAIL_PIXEL_HEIGTH/IMAGE_THUMBNAIL_PIXEL_WIDTH {
|
||||
thumbnail = imaging.Resize(img, 0, IMAGE_THUMBNAIL_PIXEL_HEIGTH, imaging.Lanczos)
|
||||
} else {
|
||||
thumbnail = imaging.Resize(img, utils.Cfg.FileSettings.ThumbnailWidth, 0, imaging.Lanczos)
|
||||
thumbnail = imaging.Resize(img, IMAGE_THUMBNAIL_PIXEL_WIDTH, 0, imaging.Lanczos)
|
||||
}
|
||||
|
||||
buf := new(bytes.Buffer)
|
||||
@@ -581,8 +579,9 @@ func generateThumbnailImage(img image.Image, thumbnailPath string, width int, he
|
||||
|
||||
func generatePreviewImage(img image.Image, previewPath string, width int) {
|
||||
var preview image.Image
|
||||
if width > int(utils.Cfg.FileSettings.PreviewWidth) {
|
||||
preview = imaging.Resize(img, utils.Cfg.FileSettings.PreviewWidth, utils.Cfg.FileSettings.PreviewHeight, imaging.Lanczos)
|
||||
|
||||
if width > IMAGE_PREVIEW_PIXEL_WIDTH {
|
||||
preview = imaging.Resize(img, IMAGE_PREVIEW_PIXEL_WIDTH, 0, imaging.Lanczos)
|
||||
} else {
|
||||
preview = img
|
||||
}
|
||||
|
||||
20
app/user.go
20
app/user.go
@@ -31,10 +31,11 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
TOKEN_TYPE_PASSWORD_RECOVERY = "password_recovery"
|
||||
TOKEN_TYPE_VERIFY_EMAIL = "verify_email"
|
||||
PASSWORD_RECOVER_EXPIRY_TIME = 1000 * 60 * 60 // 1 hour
|
||||
VERIFY_EMAIL_EXPIRY_TIME = 1000 * 60 * 60 // 1 hour
|
||||
TOKEN_TYPE_PASSWORD_RECOVERY = "password_recovery"
|
||||
TOKEN_TYPE_VERIFY_EMAIL = "verify_email"
|
||||
PASSWORD_RECOVER_EXPIRY_TIME = 1000 * 60 * 60 // 1 hour
|
||||
VERIFY_EMAIL_EXPIRY_TIME = 1000 * 60 * 60 // 1 hour
|
||||
IMAGE_PROFILE_PIXEL_DIMENSION = 128
|
||||
)
|
||||
|
||||
func CreateUserWithHash(user *model.User, hash string, data string) (*model.User, *model.AppError) {
|
||||
@@ -717,13 +718,11 @@ func CreateProfileImage(username string, userId string) ([]byte, *model.AppError
|
||||
return nil, model.NewLocAppError("CreateProfileImage", "api.user.create_profile_image.default_font.app_error", nil, err.Error())
|
||||
}
|
||||
|
||||
width := int(utils.Cfg.FileSettings.ProfileWidth)
|
||||
height := int(utils.Cfg.FileSettings.ProfileHeight)
|
||||
color := colors[int64(seed)%int64(len(colors))]
|
||||
dstImg := image.NewRGBA(image.Rect(0, 0, width, height))
|
||||
dstImg := image.NewRGBA(image.Rect(0, 0, IMAGE_PROFILE_PIXEL_DIMENSION, IMAGE_PROFILE_PIXEL_DIMENSION))
|
||||
srcImg := image.White
|
||||
draw.Draw(dstImg, dstImg.Bounds(), &image.Uniform{color}, image.ZP, draw.Src)
|
||||
size := float64((width + height) / 4)
|
||||
size := float64(IMAGE_PROFILE_PIXEL_DIMENSION / 2)
|
||||
|
||||
c := freetype.NewContext()
|
||||
c.SetFont(font)
|
||||
@@ -732,7 +731,7 @@ func CreateProfileImage(username string, userId string) ([]byte, *model.AppError
|
||||
c.SetDst(dstImg)
|
||||
c.SetSrc(srcImg)
|
||||
|
||||
pt := freetype.Pt(width/6, height*2/3)
|
||||
pt := freetype.Pt(IMAGE_PROFILE_PIXEL_DIMENSION/6, IMAGE_PROFILE_PIXEL_DIMENSION*2/3)
|
||||
_, err = c.DrawString(initial, pt)
|
||||
if err != nil {
|
||||
return nil, model.NewLocAppError("CreateProfileImage", "api.user.create_profile_image.initial.app_error", nil, err.Error())
|
||||
@@ -809,7 +808,8 @@ func SetProfileImage(userId string, imageData *multipart.FileHeader) *model.AppE
|
||||
img = makeImageUpright(img, orientation)
|
||||
|
||||
// Scale profile image
|
||||
img = imaging.Fill(img, utils.Cfg.FileSettings.ProfileWidth, utils.Cfg.FileSettings.ProfileHeight, imaging.Center, imaging.Lanczos)
|
||||
profileWidthAndHeight := 128
|
||||
img = imaging.Fill(img, profileWidthAndHeight, profileWidthAndHeight, imaging.Center, imaging.Lanczos)
|
||||
|
||||
buf := new(bytes.Buffer)
|
||||
err = png.Encode(buf, img)
|
||||
|
||||
Ссылка в новой задаче
Block a user