Thumb: Update supported sizes for videos and full screen viewer #1474

Signed-off-by: Michael Mayer <michael@photoprism.app>
This commit is contained in:
Michael Mayer
2024-05-17 15:07:27 +02:00
parent a54a46b082
commit ee33e2e663
14 changed files with 21 additions and 24 deletions

View File

@@ -78,7 +78,7 @@ class Viewer {
download: true,
},
{
id: "fit_2048",
id: "fit_1920",
template: "Medium (size)",
label: "Medium",
url: "{{raw_image_url}}",

View File

@@ -241,9 +241,7 @@ const clientConfig = {
{ size: "fit_720", usage: "SD TV, Mobile", w: 720, h: 720 },
{ size: "fit_1280", usage: "HD TV, SXGA", w: 1280, h: 1024 },
{ size: "fit_1920", usage: "Full HD", w: 1920, h: 1200 },
{ size: "fit_2048", usage: "DCI 2K, Tablets", w: 2048, h: 2048 },
{ size: "fit_2560", usage: "Quad HD, Notebooks", w: 2560, h: 1600 },
{ size: "fit_3840", usage: "4K Ultra HD", w: 3840, h: 2400 },
{ size: "fit_4096", usage: "DCI 4K, Retina 4K", w: 4096, h: 4096 },
{ size: "fit_7680", usage: "8K Ultra HD 2", w: 7680, h: 4320 },
],

View File

@@ -21,7 +21,7 @@ func TestShowThumbSizesCommand(t *testing.T) {
t.Fatal(err)
}
assert.Contains(t, output, "fit_2048")
assert.Contains(t, output, "fit_1920")
assert.Contains(t, output, "Mosaic View")
assert.Contains(t, output, "Color Detection")
}

View File

@@ -46,10 +46,10 @@ func TestConfig_FFmpegBitrate(t *testing.T) {
func TestConfig_FFmpegSize(t *testing.T) {
c := NewConfig(CliTestContext())
assert.Equal(t, 3840, c.FFmpegSize())
assert.Equal(t, 4096, c.FFmpegSize())
c.options.FFmpegSize = 0
assert.Equal(t, 3840, c.FFmpegSize())
assert.Equal(t, 4096, c.FFmpegSize())
c.options.FFmpegSize = -1
assert.Equal(t, 7680, c.FFmpegSize())

View File

@@ -661,7 +661,7 @@ var Flags = CliFlags{
Flag: cli.IntFlag{
Name: "ffmpeg-size, vs",
Usage: "maximum video size in `PIXELS` (720-7680)",
Value: thumb.Sizes[thumb.Fit3840].Width,
Value: thumb.Sizes[thumb.Fit4096].Width,
EnvVar: EnvVar("FFMPEG_SIZE"),
}}, {
Flag: cli.IntFlag{

View File

@@ -20,7 +20,7 @@ var thumbFileNames = []string{
"%s_720x720_fit.jpg",
"%s_1280x1024_fit.jpg",
"%s_1920x1200_fit.jpg",
"%s_2048x2048_fit.jpg",
"%s_2560x1600_fit.jpg",
"%s_4096x4096_fit.jpg",
"%s_7680x4320_fit.jpg",
}
@@ -30,7 +30,7 @@ var thumbFileSizes = []thumb.Size{
thumb.Sizes[thumb.Fit720],
thumb.Sizes[thumb.Fit1280],
thumb.Sizes[thumb.Fit1920],
thumb.Sizes[thumb.Fit2048],
thumb.Sizes[thumb.Fit2560],
thumb.Sizes[thumb.Fit4096],
thumb.Sizes[thumb.Fit7680],
}

View File

@@ -40,9 +40,7 @@ func (m Photo) ViewerResult(contentUri, apiUri, previewToken, downloadToken stri
Fit720: thumb.New(m.FileWidth, m.FileHeight, m.FileHash, thumb.Sizes[thumb.Fit720], contentUri, previewToken),
Fit1280: thumb.New(m.FileWidth, m.FileHeight, m.FileHash, thumb.Sizes[thumb.Fit1280], contentUri, previewToken),
Fit1920: thumb.New(m.FileWidth, m.FileHeight, m.FileHash, thumb.Sizes[thumb.Fit1920], contentUri, previewToken),
Fit2048: thumb.New(m.FileWidth, m.FileHeight, m.FileHash, thumb.Sizes[thumb.Fit2048], contentUri, previewToken),
Fit2560: thumb.New(m.FileWidth, m.FileHeight, m.FileHash, thumb.Sizes[thumb.Fit2560], contentUri, previewToken),
Fit3840: thumb.New(m.FileWidth, m.FileHeight, m.FileHash, thumb.Sizes[thumb.Fit3840], contentUri, previewToken),
Fit4096: thumb.New(m.FileWidth, m.FileHeight, m.FileHash, thumb.Sizes[thumb.Fit4096], contentUri, previewToken),
Fit7680: thumb.New(m.FileWidth, m.FileHeight, m.FileHash, thumb.Sizes[thumb.Fit7680], contentUri, previewToken),
},
@@ -81,9 +79,7 @@ func (photo GeoResult) ViewerResult(contentUri, apiUri, previewToken, downloadTo
Fit720: thumb.New(photo.FileWidth, photo.FileHeight, photo.FileHash, thumb.Sizes[thumb.Fit720], contentUri, previewToken),
Fit1280: thumb.New(photo.FileWidth, photo.FileHeight, photo.FileHash, thumb.Sizes[thumb.Fit1280], contentUri, previewToken),
Fit1920: thumb.New(photo.FileWidth, photo.FileHeight, photo.FileHash, thumb.Sizes[thumb.Fit1920], contentUri, previewToken),
Fit2048: thumb.New(photo.FileWidth, photo.FileHeight, photo.FileHash, thumb.Sizes[thumb.Fit2048], contentUri, previewToken),
Fit2560: thumb.New(photo.FileWidth, photo.FileHeight, photo.FileHash, thumb.Sizes[thumb.Fit2560], contentUri, previewToken),
Fit3840: thumb.New(photo.FileWidth, photo.FileHeight, photo.FileHash, thumb.Sizes[thumb.Fit3840], contentUri, previewToken),
Fit4096: thumb.New(photo.FileWidth, photo.FileHeight, photo.FileHash, thumb.Sizes[thumb.Fit4096], contentUri, previewToken),
Fit7680: thumb.New(photo.FileWidth, photo.FileHeight, photo.FileHash, thumb.Sizes[thumb.Fit7680], contentUri, previewToken),
},

View File

@@ -7,9 +7,7 @@ import "image"
var FitSizes = SizeList{
Sizes[Fit7680],
Sizes[Fit4096],
Sizes[Fit3840],
Sizes[Fit2560],
Sizes[Fit2048],
Sizes[Fit1920],
Sizes[Fit1280],
Sizes[Fit720],

View File

@@ -12,10 +12,11 @@ func TestFit(t *testing.T) {
assert.Equal(t, Sizes[Fit720], Fit(54, 453))
assert.Equal(t, Sizes[Fit1280], Fit(1000, 1000))
assert.Equal(t, Sizes[Fit1280], Fit(1250, 1000))
assert.Equal(t, Sizes[Fit2048], Fit(1300, 1300))
assert.Equal(t, Sizes[Fit2048], Fit(1600, 1600))
assert.Equal(t, Sizes[Fit1920], Fit(1300, 1200))
assert.Equal(t, Sizes[Fit2560], Fit(1300, 1300))
assert.Equal(t, Sizes[Fit2560], Fit(1600, 1600))
assert.Equal(t, Sizes[Fit4096], Fit(1000, 3000))
assert.Equal(t, Sizes[Fit3840], Fit(2300, 2000))
assert.Equal(t, Sizes[Fit4096], Fit(2300, 2000))
assert.Equal(t, Sizes[Fit7680], Fit(5000, 5000))
}

View File

@@ -5,9 +5,7 @@ type Public struct {
Fit720 Thumb `json:"fit_720"`
Fit1280 Thumb `json:"fit_1280"`
Fit1920 Thumb `json:"fit_1920"`
Fit2048 Thumb `json:"fit_2048"`
Fit2560 Thumb `json:"fit_2560"`
Fit3840 Thumb `json:"fit_3840"`
Fit4096 Thumb `json:"fit_4096"`
Fit7680 Thumb `json:"fit_7680"`
}

View File

@@ -39,7 +39,6 @@ func TestNew(t *testing.T) {
assert.Equal(t, 720, result.H)
assert.Equal(t, "/content/t/d2b4a5d18276f96f1b5a1bf17fd82d6fab3807f2/preview-token/fit_1280", result.Src)
})
t.Run("Fit3840", func(t *testing.T) {
result := New(1920, 1080, fileHash, Sizes[Fit3840], contentUri, previewToken)
@@ -47,4 +46,11 @@ func TestNew(t *testing.T) {
assert.Equal(t, 1080, result.H)
assert.Equal(t, "/content/t/d2b4a5d18276f96f1b5a1bf17fd82d6fab3807f2/preview-token/fit_3840", result.Src)
})
t.Run("Fit4096", func(t *testing.T) {
result := New(1920, 1080, fileHash, Sizes[Fit4096], contentUri, previewToken)
assert.Equal(t, 1920, result.W)
assert.Equal(t, 1080, result.H)
assert.Equal(t, "/content/t/d2b4a5d18276f96f1b5a1bf17fd82d6fab3807f2/preview-token/fit_4096", result.Src)
})
}

View File

@@ -19,7 +19,7 @@ func VideoSize(limit int) Size {
return Sizes[Fit7680]
} else if limit == 0 {
// Return default size.
return Sizes[Fit3840]
return Sizes[Fit4096]
} else if limit <= 720 {
// Return minimum size.
return Sizes[Fit720]

View File

@@ -15,8 +15,8 @@ func TestVideoSize(t *testing.T) {
assert.Equal(t, Sizes[Fit1920], VideoSize(2000))
assert.Equal(t, Sizes[Fit2048], VideoSize(2048))
assert.Equal(t, Sizes[Fit2560], VideoSize(3000))
assert.Equal(t, Sizes[Fit3840], VideoSize(0))
assert.Equal(t, Sizes[Fit3840], VideoSize(4000))
assert.Equal(t, Sizes[Fit4096], VideoSize(0))
assert.Equal(t, Sizes[Fit7680], VideoSize(8000))
assert.Equal(t, Sizes[Fit7680], VideoSize(-1))
}

View File

@@ -86,7 +86,7 @@ func (w *Share) Start() (err error) {
if s, ok := thumb.Sizes[thumb.Name(a.ShareSize)]; ok {
size = s
} else {
size = thumb.Sizes[thumb.Fit2048]
size = thumb.SizeFit1920
}
}