mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-08-09 10:22:51 +03:00
Made display thumbnail generation use original data if smaller
Thumbnail generation would sometimes create a file larger than the original, if the original was already well optimized, therefore making the thumbnail counter-productive. This change compares the sizes of the original and the generated thumbnail, and uses the smaller of the two if the thumbnail does not change the aspect ratio of the image. Fixes #1751
This commit is contained in:
@@ -36,6 +36,30 @@ class ImageTest extends TestCase
|
||||
]);
|
||||
}
|
||||
|
||||
public function test_image_display_thumbnail_generation_does_not_increase_image_size()
|
||||
{
|
||||
$page = Page::first();
|
||||
$admin = $this->getAdmin();
|
||||
$this->actingAs($admin);
|
||||
|
||||
$originalFile = $this->getTestImageFilePath('compressed.png');
|
||||
$originalFileSize = filesize($originalFile);
|
||||
$imgDetails = $this->uploadGalleryImage($page, 'compressed.png');
|
||||
$relPath = $imgDetails['path'];
|
||||
|
||||
$this->assertTrue(file_exists(public_path($relPath)), 'Uploaded image found at path: '. public_path($relPath));
|
||||
$displayImage = $imgDetails['response']->thumbs->display;
|
||||
|
||||
$displayImageRelPath = implode('/', array_slice(explode('/', $displayImage), 3));
|
||||
$displayImagePath = public_path($displayImageRelPath);
|
||||
$displayFileSize = filesize($displayImagePath);
|
||||
|
||||
$this->deleteImage($relPath);
|
||||
$this->deleteImage($displayImageRelPath);
|
||||
|
||||
$this->assertEquals($originalFileSize, $displayFileSize, 'Display thumbnail generation should not increase image size');
|
||||
}
|
||||
|
||||
public function test_image_edit()
|
||||
{
|
||||
$editor = $this->getEditor();
|
||||
|
Reference in New Issue
Block a user