Kareadita / Kavita

Kavita is a fast, feature rich, cross platform reading server. Built with the goal of being a full solution for all your reading needs. Setup your own server and share your reading collection with your friends and family.
http://www.kavitareader.com
GNU General Public License v3.0
6.34k stars 328 forks source link

"Image scale" to "width" not working as expected #2669

Closed TyrantRC closed 5 months ago

TyrantRC commented 9 months ago

What happened?

  1. I opened 1 manga in my library
  2. went to reader settings and selected "image scaling" to width
  3. the reader sets the width of the page to something that is not fitted to the maximum resolution of my screen

Caveats:

What did you expect?

I expected the image to be fitted to the max width of my screen, especially in fullscreen mode.

Version

Version 0.7.13.0

What OS is Kavita being run on?

Windows

If the issue is being seen on Desktop, what OS are you running where you see the issue?

Windows

If the issue is being seen in the UI, what browsers are you seeing the problem on?

Chrome

If the issue is being seen on Mobile, what OS are you running where you see the issue?

None

If the issue is being seen on the UI, what browsers are you seeing the problem on?

Chrome

Relevant log output

[Kavita] [2024-01-30 15:44:43.237 -04:00  1] [Information] API.Services.TaskScheduler Scheduling reoccurring tasks
[Kavita] [2024-01-30 15:44:43.322 -04:00  1] [Debug] API.Services.TaskScheduler Scheduling Scan Library Task for daily
[Kavita] [2024-01-30 15:44:43.474 -04:00  1] [Debug] API.Services.TaskScheduler Scheduling Backup Task for daily
[Kavita] [2024-01-30 15:44:43.481 -04:00  1] [Information] API.Services.TaskScheduler Scheduling Auto-Update tasks
[Kavita] [2024-01-30 15:44:43.513 -04:00  1] [Debug] API.Services.TaskScheduler Scheduling stat collection daily
[Kavita] [2024-01-30 15:44:43.626 -04:00  4] [Information] API.Program Running Migrations
[Kavita] [2024-01-30 15:44:43.630 -04:00  4] [Fatal] API.Program Running MigrateUserLibrarySideNavStream migration - Please be patient, this may take some time. This is not an error
[Kavita] [2024-01-30 15:44:43.687 -04:00  4] [Fatal] API.Program Running MigrateUserLibrarySideNavStream migration - complete. Nothing to do
[Kavita] [2024-01-30 15:44:43.688 -04:00  4] [Fatal] API.Program Running MigrateSmartFilterEncoding migration - Please be patient, this may take some time. This is not an error
[Kavita] [2024-01-30 15:44:43.708 -04:00  4] [Fatal] API.Program Running MigrateSmartFilterEncoding migration - Completed. This is not an error
[Kavita] [2024-01-30 15:44:43.710 -04:00  4] [Fatal] API.Program Running MigrateLibrariesToHaveAllFileTypes migration - Please be patient, this may take some time. This is not an error
[Kavita] [2024-01-30 15:44:43.796 -04:00  4] [Fatal] API.Program Running MigrateLibrariesToHaveAllFileTypes migration - Completed. This is not an error
[Kavita] [2024-01-30 15:44:43.943 -04:00  4] [Information] API.Program Running Migrations - complete
[Kavita] [2024-01-30 15:44:44.446 -04:00  1] [Information] API.Program Starting with base url as /
[Kavita] [2024-01-30 15:44:44.628 -04:00  1] [Information] Microsoft.Hosting.Lifetime Now listening on: http://[::]:5000
[Kavita] [2024-01-30 15:44:44.630 -04:00  1] [Information] API.Program Kavita - v0.7.13.0
[Kavita] [2024-01-30 15:44:44.688 -04:00  1] [Information] Microsoft.Hosting.Lifetime Application started. Press Ctrl+C to shut down.
[Kavita] [2024-01-30 15:44:44.688 -04:00  1] [Information] Microsoft.Hosting.Lifetime Hosting environment: Production
[Kavita] [2024-01-30 15:44:44.688 -04:00  1] [Information] Microsoft.Hosting.Lifetime Content root path: I:\Portable Software\Kavita
[Kavita] [2024-01-30 15:44:57.231 -04:00  11] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /home responded 200 in 94.1003 ms
[Kavita] [2024-01-30 15:44:58.195 -04:00  7] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP POST /hubs/messages/negotiate?negotiateVersion=1 responded 200 in 6.8976 ms
[Kavita] [2024-01-30 15:44:58.253 -04:00  4] [Debug] API.Controllers.LibraryController Caching libraries for library_TRC
[Kavita] [2024-01-30 15:44:58.264 -04:00  42] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/device responded 200 in 81.6929 ms
[Kavita] [2024-01-30 15:44:58.273 -04:00  6] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/license/valid-license?forceCheck=false responded 200 in 117.0001 ms
[Kavita] [2024-01-30 15:44:58.274 -04:00  11] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/theme responded 200 in 120.3136 ms
[Kavita] [2024-01-30 15:44:58.285 -04:00  42] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/theme responded 200 in 4.0495 ms
[Kavita] [2024-01-30 15:44:58.283 -04:00  7] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/license/valid-license?forceCheck=false responded 200 in 1.5518 ms
[Kavita] [2024-01-30 15:44:58.348 -04:00  41] [Warning] Microsoft.EntityFrameworkCore.Query Compiling a query which loads related collections for more than one collection navigation, either via 'Include' or through projection, but no 'QuerySplittingBehavior' has been configured. By default, Entity Framework will use 'QuerySplittingBehavior.SingleQuery', which can potentially result in slow query performance. See https://go.microsoft.com/fwlink/?linkid=2134277 for more information. To identify the query that's triggering this warning call 'ConfigureWarnings(w => w.Throw(RelationalEventId.MultipleCollectionIncludeWarning))'.
[Kavita] [2024-01-30 15:44:58.359 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/library responded 200 in 202.6788 ms
[Kavita] [2024-01-30 15:44:58.394 -04:00  41] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/stream/sidenav?visibleOnly=true responded 200 in 237.5145 ms
[Kavita] [2024-01-30 15:44:58.934 -04:00  44] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/scrobbling/token-expired?provider=1 responded 200 in 9.4956 ms
[Kavita] [2024-01-30 15:44:58.938 -04:00  45] [Debug] API.Controllers.LibraryController Caching libraries for library_TRC
[Kavita] [2024-01-30 15:44:58.960 -04:00  45] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/library responded 200 in 25.1013 ms
[Kavita] [2024-01-30 15:44:58.976 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/stream/dashboard?visibleOnly=true responded 200 in 46.2567 ms
[Kavita] [2024-01-30 15:44:59.150 -04:00  45] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/metadata/genres responded 200 in 19.1117 ms
[Kavita] [2024-01-30 15:44:59.210 -04:00  42] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP POST /api/series/recently-updated-series responded 200 in 86.8477 ms
[Kavita] [2024-01-30 15:44:59.870 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP POST /api/series/on-deck?libraryId=0&pageNumber=1&pageSize=20 responded 200 in 748.9378 ms
[Kavita] [2024-01-30 15:45:00.104 -04:00  45] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/series-cover?seriesId=191&apiKey=******REDACTED******" responded 304 in 45.2458 ms
[Kavita] [2024-01-30 15:45:00.104 -04:00  42] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/series-cover?seriesId=142&apiKey=******REDACTED******" responded 304 in 44.5474 ms
[Kavita] [2024-01-30 15:45:00.104 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/series-cover?seriesId=190&apiKey=******REDACTED******" responded 304 in 45.2458 ms
[Kavita] [2024-01-30 15:45:00.104 -04:00  44] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/series-cover?seriesId=158&apiKey=******REDACTED******" responded 304 in 44.7048 ms
[Kavita] [2024-01-30 15:45:00.104 -04:00  6] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/series-cover?seriesId=159&apiKey=******REDACTED******" responded 304 in 37.3648 ms
[Kavita] [2024-01-30 15:45:00.104 -04:00  41] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/series-cover?seriesId=194&apiKey=******REDACTED******" responded 304 in 54.6549 ms
[Kavita] [2024-01-30 15:45:00.301 -04:00  6] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/series-cover?seriesId=155&apiKey=******REDACTED******" responded 304 in 3.1741 ms
[Kavita] [2024-01-30 15:45:00.301 -04:00  41] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/series-cover?seriesId=132&apiKey=******REDACTED******" responded 304 in 3.2263 ms
[Kavita] [2024-01-30 15:45:00.304 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/series-cover?seriesId=154&apiKey=******REDACTED******" responded 304 in 4.3354 ms
[Kavita] [2024-01-30 15:45:00.338 -04:00  41] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/series-cover?seriesId=157&apiKey=******REDACTED******" responded 304 in 1.6755 ms
[Kavita] [2024-01-30 15:45:00.478 -04:00  41] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/series-cover?seriesId=172&apiKey=******REDACTED******" responded 304 in 1.6949 ms
[Kavita] [2024-01-30 15:45:00.852 -04:00  6] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/users/has-library-access?libraryId=3 responded 200 in 31.0579 ms
[Kavita] [2024-01-30 15:45:00.882 -04:00  6] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/users/has-library-access?libraryId=3 responded 200 in 21.1141 ms
[Kavita] [2024-01-30 15:45:00.980 -04:00  6] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/filter responded 200 in 11.2831 ms
[Kavita] [2024-01-30 15:45:00.988 -04:00  41] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/library/jump-bar?libraryId=3 responded 200 in 32.3600 ms
[Kavita] [2024-01-30 15:45:01.090 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP POST /api/series/v2 responded 200 in 104.6258 ms
[Kavita] [2024-01-30 15:45:01.381 -04:00  44] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/series-cover?seriesId=134&apiKey=******REDACTED******" responded 304 in 1.4530 ms
[Kavita] [2024-01-30 15:45:01.381 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/series-cover?seriesId=130&apiKey=******REDACTED******" responded 304 in 1.8207 ms
[Kavita] [2024-01-30 15:45:01.381 -04:00  41] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/series-cover?seriesId=133&apiKey=******REDACTED******" responded 304 in 1.8207 ms
[Kavita] [2024-01-30 15:45:01.381 -04:00  6] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/series-cover?seriesId=140&apiKey=******REDACTED******" responded 304 in 0.9870 ms
[Kavita] [2024-01-30 15:45:01.383 -04:00  44] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/series-cover?seriesId=143&apiKey=******REDACTED******" responded 304 in 1.9252 ms
[Kavita] [2024-01-30 15:45:01.384 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/series-cover?seriesId=147&apiKey=******REDACTED******" responded 304 in 2.0785 ms
[Kavita] [2024-01-30 15:45:01.604 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/series-cover?seriesId=148&apiKey=******REDACTED******" responded 304 in 1.9467 ms
[Kavita] [2024-01-30 15:45:01.613 -04:00  6] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/series-cover?seriesId=149&apiKey=******REDACTED******" responded 304 in 1.4322 ms
[Kavita] [2024-01-30 15:45:01.955 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/series-cover?seriesId=153&apiKey=******REDACTED******" responded 304 in 4.3845 ms
[Kavita] [2024-01-30 15:45:01.997 -04:00  6] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/series-cover?seriesId=156&apiKey=******REDACTED******" responded 304 in 1.7687 ms
[Kavita] [2024-01-30 15:45:01.997 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/series-cover?seriesId=150&apiKey=******REDACTED******" responded 304 in 1.7566 ms
[Kavita] [2024-01-30 15:45:02.076 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/series-cover?seriesId=144&apiKey=******REDACTED******" responded 304 in 1.6703 ms
[Kavita] [2024-01-30 15:45:04.643 -04:00  44] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/users/has-library-access?libraryId=3 responded 200 in 2.5682 ms
[Kavita] [2024-01-30 15:45:04.715 -04:00  6] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/want-to-read?seriesId=194 responded 200 in 13.9217 ms
[Kavita] [2024-01-30 15:45:04.716 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/readinglist/lists-for-series?seriesId=194 responded 200 in 15.5424 ms
[Kavita] [2024-01-30 15:45:04.726 -04:00  41] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/reader/has-progress?seriesId=194 responded 200 in 9.8001 ms
[Kavita] [2024-01-30 15:45:04.742 -04:00  7] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/metadata/series-detail-plus?seriesId=194 responded 204 in 5.9141 ms
[Kavita] [2024-01-30 15:45:04.749 -04:00  41] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/series/194 responded 200 in 15.8930 ms
[Kavita] [2024-01-30 15:45:04.752 -04:00  6] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/library/type?libraryId=3 responded 200 in 22.0546 ms
[Kavita] [2024-01-30 15:45:04.823 -04:00  7] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/series/all-related?seriesId=194 responded 200 in 59.0921 ms
[Kavita] [2024-01-30 15:45:04.844 -04:00  42] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/reader/continue-point?seriesId=194 responded 200 in 127.0484 ms
[Kavita] [2024-01-30 15:45:04.882 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/series/series-detail?seriesId=194 responded 200 in 116.7329 ms
[Kavita] [2024-01-30 15:45:04.898 -04:00  44] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/series/metadata?seriesId=194 responded 200 in 196.9150 ms
[Kavita] [2024-01-30 15:45:04.962 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/image/volume-cover?volumeId=1357&apiKey=******REDACTED******" responded 304 in 14.1319 ms
[Kavita] [2024-01-30 15:45:04.975 -04:00  41] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/scrobbling/has-hold?seriesId=194 responded 200 in 9.0070 ms
[Kavita] [2024-01-30 15:45:04.982 -04:00  43] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/reader/time-left?seriesId=194 responded 200 in 16.9169 ms
[Kavita] [2024-01-30 15:45:04.986 -04:00  6] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/scrobbling/library-allows-scrobbling?seriesId=194 responded 200 in 8.8618 ms
[Kavita] [2024-01-30 15:45:05.019 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/rating/overall?seriesId=194 responded 200 in 36.4878 ms
[Kavita] [2024-01-30 15:45:05.252 -04:00  44] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/series/next-expected?seriesId=194 responded 200 in 303.6058 ms
[Kavita] [2024-01-30 15:45:05.818 -04:00  6] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/users/has-library-access?libraryId=3 responded 200 in 1.4976 ms
[Kavita] [2024-01-30 15:45:05.889 -04:00  43] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/reader/get-progress?chapterId=10850 responded 200 in 18.8938 ms
[Kavita] [2024-01-30 15:45:05.894 -04:00  6] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/users/has-reading-progress?libraryId=3 responded 200 in 24.0335 ms
[Kavita] [2024-01-30 15:45:05.911 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/reader/chapter-bookmarks?chapterId=10850 responded 200 in 16.3284 ms
[Kavita] [2024-01-30 15:45:06.203 -04:00  44] [Debug] API.Services.CacheService File Dimensions call for 55 images took 108ms
[Kavita] [2024-01-30 15:45:06.216 -04:00  43] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/reader/chapter-info?chapterId=10850&includeDimensions=true responded 200 in 326.9574 ms
[Kavita] [2024-01-30 15:45:06.246 -04:00  44] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/reader/next-chapter?seriesId=194&volumeId=1357&currentChapterId=10850 responded 200 in 17.7146 ms
[Kavita] [2024-01-30 15:45:06.246 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/reader/prev-chapter?seriesId=194&volumeId=1357&currentChapterId=10850 responded 200 in 13.5356 ms
[Kavita] [2024-01-30 15:45:06.248 -04:00  41] [Information] API.Controllers.ReaderController Fetching Page 1 on Chapter 10850
[Kavita] [2024-01-30 15:45:06.251 -04:00  42] [Information] API.Controllers.ReaderController Fetching Page 2 on Chapter 10850
[Kavita] [2024-01-30 15:45:06.253 -04:00  42] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/reader/image?chapterId=10850&apiKey=******REDACTED******&page=2" responded 304 in 6.7687 ms
[Kavita] [2024-01-30 15:45:06.253 -04:00  41] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/reader/image?chapterId=10850&apiKey=******REDACTED******&page=1" responded 304 in 16.0601 ms
[Kavita] [2024-01-30 15:45:06.257 -04:00  6] [Information] API.Controllers.ReaderController Fetching Page 0 on Chapter 10850
[Kavita] [2024-01-30 15:45:06.262 -04:00  6] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/reader/image?chapterId=10850&apiKey=******REDACTED******&page=0" responded 304 in 25.4042 ms
[Kavita] [2024-01-30 15:45:06.266 -04:00  41] [Information] API.Controllers.ReaderController Fetching Page 4 on Chapter 10850
[Kavita] [2024-01-30 15:45:06.267 -04:00  45] [Information] API.Controllers.ReaderController Fetching Page 3 on Chapter 10850
[Kavita] [2024-01-30 15:45:06.268 -04:00  41] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/reader/image?chapterId=10850&apiKey=******REDACTED******&page=4" responded 304 in 6.0178 ms
[Kavita] [2024-01-30 15:45:06.269 -04:00  45] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/reader/image?chapterId=10850&apiKey=******REDACTED******&page=3" responded 304 in 6.9124 ms
[Kavita] [2024-01-30 15:45:06.278 -04:00  6] [Information] API.Controllers.ReaderController Fetching Page 6 on Chapter 10850
[Kavita] [2024-01-30 15:45:06.282 -04:00  4] [Information] API.Controllers.ReaderController Fetching Page 5 on Chapter 10850
[Kavita] [2024-01-30 15:45:06.287 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/reader/image?chapterId=10850&apiKey=******REDACTED******&page=5" responded 304 in 15.7199 ms
[Kavita] [2024-01-30 15:45:06.287 -04:00  6] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/reader/image?chapterId=10850&apiKey=******REDACTED******&page=6" responded 304 in 14.8242 ms
[Kavita] [2024-01-30 15:45:06.301 -04:00  45] [Information] API.Controllers.ReaderController Fetching Page 7 on Chapter 10850
[Kavita] [2024-01-30 15:45:06.305 -04:00  45] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET "/api/reader/image?chapterId=10850&apiKey=******REDACTED******&page=7" responded 304 in 12.1698 ms
[Kavita] [2024-01-30 15:45:06.353 -04:00  43] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP POST /api/reader/progress responded 200 in 126.2945 ms
[Kavita] [2024-01-30 15:45:33.001 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/users/has-library-access?libraryId=3 responded 200 in 2.0128 ms
[Kavita] [2024-01-30 15:45:33.040 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/stream/sidenav?visibleOnly=true responded 200 in 4.1412 ms
[Kavita] [2024-01-30 15:45:33.040 -04:00  43] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/want-to-read?seriesId=194 responded 200 in 1.1758 ms
[Kavita] [2024-01-30 15:45:33.041 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/reader/has-progress?seriesId=194 responded 200 in 0.8392 ms
[Kavita] [2024-01-30 15:45:33.041 -04:00  45] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/series/metadata?seriesId=194 responded 200 in 4.8313 ms
[Kavita] [2024-01-30 15:45:33.045 -04:00  43] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/reader/continue-point?seriesId=194 responded 200 in 3.5593 ms
[Kavita] [2024-01-30 15:45:33.050 -04:00  45] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/metadata/series-detail-plus?seriesId=194 responded 204 in 2.1359 ms
[Kavita] [2024-01-30 15:45:33.054 -04:00  6] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/readinglist/lists-for-series?seriesId=194 responded 200 in 1.4197 ms
[Kavita] [2024-01-30 15:45:33.057 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/series/194 responded 200 in 3.1682 ms
[Kavita] [2024-01-30 15:45:33.099 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/series/next-expected?seriesId=194 responded 200 in 11.6714 ms
[Kavita] [2024-01-30 15:45:33.100 -04:00  6] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/series/series-detail?seriesId=194 responded 200 in 8.2108 ms
[Kavita] [2024-01-30 15:45:33.100 -04:00  46] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/series/all-related?seriesId=194 responded 200 in 8.5377 ms
[Kavita] [2024-01-30 15:45:33.124 -04:00  47] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/scrobbling/has-hold?seriesId=194 responded 200 in 0.9918 ms
[Kavita] [2024-01-30 15:45:33.125 -04:00  46] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/scrobbling/library-allows-scrobbling?seriesId=194 responded 200 in 0.4976 ms
[Kavita] [2024-01-30 15:45:33.125 -04:00  4] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/reader/time-left?seriesId=194 responded 200 in 4.2503 ms
[Kavita] [2024-01-30 15:45:33.131 -04:00  6] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/rating/overall?seriesId=194 responded 200 in 1.6090 ms
[Kavita] [2024-01-30 15:45:33.627 -04:00  46] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/reader/time-left?seriesId=194 responded 200 in 3.4560 ms
[Kavita] [2024-01-30 15:45:34.943 -04:00  46] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/settings/task-frequencies responded 200 in 2.3868 ms
[Kavita] [2024-01-30 15:45:34.943 -04:00  6] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/settings/log-levels responded 200 in 2.3867 ms
[Kavita] [2024-01-30 15:45:34.962 -04:00  47] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/settings responded 200 in 21.5914 ms
[Kavita] [2024-01-30 15:45:34.981 -04:00  47] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/server/server-info-slim responded 200 in 9.4635 ms
[Kavita] [2024-01-30 15:45:35.899 -04:00  47] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/settings/task-frequencies responded 200 in 0.4454 ms
[Kavita] [2024-01-30 15:45:35.899 -04:00  46] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/settings/log-levels responded 200 in 0.4472 ms
[Kavita] [2024-01-30 15:45:35.899 -04:00  6] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/settings responded 200 in 3.4497 ms
[Kavita] [2024-01-30 15:45:35.954 -04:00  47] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/settings/log-levels responded 200 in 0.4394 ms
[Kavita] [2024-01-30 15:45:35.954 -04:00  6] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/settings/task-frequencies responded 200 in 0.4586 ms
[Kavita] [2024-01-30 15:45:35.954 -04:00  46] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/settings responded 200 in 0.8159 ms
[Kavita] [2024-01-30 15:45:36.035 -04:00  46] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/server/jobs responded 200 in 33.8727 ms

Additional Notes

My display resolution is 1440x900

I had a theory that this might happen with comics/manga that have images of different sizes inside their respective folders (page 1 width of 1124px, page 5 width of 830px), not sure up to what folder level though, and not sure how to test it.

The following is one of the tests I tried:

  1. I created a new folder(with a new name) in my library,
  2. created a volume (v01) and chapter (c01) with a different name for the comic,
  3. and then copied images from the manga that was giving me problems,
  4. I deleted all images that were not of the same horizontal size and then scanned the folder into kavita.
  5. The issue persisted.

I also tried opening it in another browser (firefox) and it's even worse. For some reason firefox adds a empty padding to the top of the image, this also only happens with manga that present the "width issue", because the ones that properly expand to their full width don't have the padding either

therobbiedavis commented 9 months ago

Kavita does not upscale images, so what you're seeing is Kavita letting the image take a maximum of the full viewport width, it doesn't force it though.

If the original width of your image is less than the width of your viewport what you are experiencing is what you get.

The padding at the top looks to be a bug though.

TyrantRC commented 9 months ago

Kavita does not upscale images, so what you're seeing is Kavita letting the image take a maximum of the full viewport width, it doesn't force it though.

Why does it say "image scaling" or am I misunderstanding things?

If the original width of your image is less than the width of your viewport what you are experiencing is what you get.

@therobbiedavis Can you elaborate on this? it sounds like it will not scale the image at all, but I have manga that is horizontally smaller than my screen and kavita still fully fits it to width, while it does not with others. Not sure if what you are referring to is a soft limit.

This may be a limitation of browser readers, but most web readers fit to maximum width, not sure why this should be different.

Right now I have to adjust the zoom of the page in my browser manually, and then readjust it again when I go back to the menu page. I don't see a reason why kavita shouldn't give the user the option to fit to width when the browser can do that already, albeit a little bit more rudimentarily.

therobbiedavis commented 9 months ago

Why does it say "image scaling" or am I misunderstanding things?

I understand how that can be confusing, image scaling is just in reference to how the image will fit on the screen. Either fit the image based on screen height or screen width.

@therobbiedavis Can you elaborate on this? it sounds like it will not scale the image at all, but I have manga that is horizontally smaller than my screen and kavita still fully fits it to width, while it does not with others. Not sure if what you are referring to is a soft limit.

I would be interested in debugging that, because if the manga's horizontal image resolution is smaller than your screen's horizontal resolution it should not fully fit while in width mode.

This may be a limitation of browser readers, but most web readers fit to maximum width, not sure why this should be different.

This is because we don't want to pixelate the image by forcing it larger than its natural resolution. We also have to consider ultra-wide resolutions.

TyrantRC commented 9 months ago

I would be interested in debugging that, because if the manga's horizontal image resolution is smaller than your screen's horizontal resolution it should not fully fit while in width mode.

@therobbiedavis I don't want to be rude, I truly don't. I feel like either I'm not understanding what you are saying or you don't understand what fit-to-width means, because that's the whole purpose of the feature and you are telling me it doesn't do that.

The image I posted above fits completely, and you can see here that the horizontal size of that particular page is 1336px, while my screen is 1440px. It's obviously scaling it up to almost the full screen without counting for like 10px of the scrollbar.

I have to say, this is like a huge reason for me to stop using Kavita altogether, the library manager is excellent, the server is super lightweight, but if I cannot use the native reader as an actual reader then what's the point? You guys need to either allow the user to open manga/comics with another reader from the library, or allow the user to control how they want to read it, in this case by actually implementing the feature how it should work.

Maybe consider adding a tick of "force to width" if you still want to accommodate theaters-like screens to the reader? But please don't sacrifice the whole feature. With a huge screen you can actually just read it in "original size", you cannot do that with a small screen.


Here is an example from a popular reader (Honeyview) fitting the same page I linked above

Original size -see the black borders to both extremes image

Fit to width -covering 100% of my horizontal resolution image

therobbiedavis commented 9 months ago

@TyrantRC I will discuss with @majora2007, but don't take this the wrong way I don't know if this is a feature that will be implemented. From our discussions with users they would rather not have their images pixelated.

I have no idea why that particular manga is taking up the whole screen without debugging more, however to show you what I am talking about I have a few images to support why we made this decision in the first place:

therobbiedavis commented 9 months ago

From here on, I will just let @majora2007 weight in. After some discussion it seems he has some comments and ideas to share.

TyrantRC commented 9 months ago

@TyrantRC I will discuss with @majora2007, but don't take this the wrong way I don't know if this is a feature that will be implemented. From our discussions with users they would rather not have their images pixelated.

Just wanted to mention that we could always have both. A "smart width scaling" and a "forced width scaling".

From here on, I will just let @majora2007 weight in. After some discussion it seems he has some comments and ideas to share.

will wait for @majora2007 input on this then.

majora2007 commented 8 months ago

Sorry that I haven't gotten back to you on this. To start, i do think misunderstanding is coming from the label, so I will look to fix that.

I have had this situation happen on lower resolution manga and it is indeed annoying. It's something I've wanted to work on with a new "scaling" mode, but it hasn't been a priority for me personally. The code is open source so if you are interested in driving a solution home, I'm all for it.

As of right now, I can't put much time to look into enhancing this to solve this case. I do agree it needs to be fixed, but I have my plate full with much higher impacting features for the community.

TyrantRC commented 8 months ago

It's something I've wanted to work on with a new "scaling" mode, but it hasn't been a priority for me personally.

@majora2007 It's fine. I'm ok with at least getting a reply about this.

The code is open source so if you are interested in driving a solution home, I'm all for it.

Believe me, if I knew how to do it I would have done so already.

That said, I saw the implemented solution in Ollm's OpenComic. They added a checkbox to let the user decide if they want to avoid enlarging more than the original size.

image

And I'm guessing that's just a conditional, but nothing is ever that simple in coding, so I understand your decision.

I do believe that your code has a bug though, as I said before, Kavita enlarges some images past their 100% when as far as I understand, you are mostly trying to avoid that. So even if you don't want to implement the feature I'm suggesting, you should probably look into how to make your current "image scale" consistent.