Commit Graph

21 Commits

Author SHA1 Message Date
Roeland Jago Douma ce10f8b8c4 Only generate previews in powers of 4 and set min
Before we'd round up all preview request to their nearest power of two.
This resulted still in a lot of possible images. Generating a lot of
server load and taking up a lot of space.

This moves it to previews to be powers of 4: 64, 256, 1024 and 4096
Also the first two powers are always skipped (4, 16) as it doesn't make
sense to generate previews for that.

We cache preview pretty agressively and I feel this is a better
tradeoff.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-10-31 19:34:42 +01:00
Roeland Jago Douma 5b103744c8 Check if a preview provider is available before using it
Else if a preview provider is registerd but not available (for example
missing support in some external lib). It will do 💥. This way the
providers can at least do the sanity checks required.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-08-17 20:51:35 +02:00
Roeland Jago Douma 14acded171 Make sure the file is readable before attempting to create a preview
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-05-30 11:34:02 +02:00
Roeland Jago Douma 8703df3233 If the preview is size 0 it is invalid
* delete it
* throw a NotFound Exception
  - This should a proper 404 to the user
  - Next time it is then regenerated

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-01-22 13:57:00 +01:00
Morris Jobke e4b3ee8d8f Fix float/integer handling in image API
* IImage::crop/preciseResize now have type hinting for integers
* found while testing strict typing for PHP 7+

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-17 10:00:33 +01:00
Jan-Christoph Borchardt 9386b07ed8 Merge pull request #7731 from nextcloud/preview_size_inc
Max preview size to 4096x4096
2018-01-09 11:07:02 +01:00
Roeland Jago Douma e2352cc06f Max preview size to 4096x4096
With HiDPI screens. And even normal HD screens you want more detail from
your pictures. Or the ability to somewhat zoom on you previews. For this
we need somewhat larger previews.

Moving the default to 4096x4096 is a step up. Users that want the old
behavior can still set the values in config.php

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-01-08 15:35:55 +01:00
Roeland Jago Douma faa68b28cb Only return 1 type
Throw proper exception if we can't get the mimetype for a preview. Catch
it later on so we can just return a not found for the preview.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-01-07 14:36:37 +01:00
Roeland Jago Douma 5b21650097 Don't lie about the preview mimetype
For legacy reasons we stored all the previews with a png extention.
However we did not put png data in them all the time.

This caused the preview endpoints to always report that a preview is a
png file. Which was a lie.

Since we abstract away from the storage etc in the previewmanager. There
is no need anymore to store them as .png files and instead we can use
the actual file extention.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-01-07 11:41:54 +01:00
Morris Jobke 0eebff152a Update license headers
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-06 16:56:19 +01:00
Roeland Jago Douma 29fb315ffc Allow requesting the max preview
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2017-09-25 16:18:48 +02:00
Morris Jobke 6aac094091 Add PHPDoc
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-05-02 13:43:47 +02:00
Robin Appelman 4dfd90abc4 better handling of preview generation errors
Signed-off-by: Robin Appelman <robin@icewind.nl>
2017-05-02 13:43:47 +02:00
Roeland Jago Douma 0ad4b89d41 Some code cleanup
As suggested by the inspector

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2017-03-19 20:30:46 +01:00
Roeland Jago Douma 4cd13e7668 Don't generate max preview twice
If you request a preview of X by Y. And after calculating X and Y are
equal to maxWidth and maxHeight then there is no reason to create a
preview of that size.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2017-03-19 20:23:23 +01:00
Roeland Jago Douma 99ada40df4 Dispatch event on preview request
Fixes: #73

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-11-10 14:28:09 +01:00
Roeland Jago Douma 87855aa97b Added genertor helper & tests
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-11-03 14:00:33 +01:00
Roeland Jago Douma d720a2fb57 Moved over files_versions
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-11-03 14:00:33 +01:00
Roeland Jago Douma 5466fbf761 Move Ipreview to more of DI thingy
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-11-03 14:00:33 +01:00
Roeland Jago Douma 8468212386 Fix name conflict
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-11-03 14:00:33 +01:00
Roeland Jago Douma d6f1287ae6 Move file
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-11-03 14:00:33 +01:00