diff --git a/inc/config.php b/inc/config.php index 8818e646..6b7a7e8c 100644 --- a/inc/config.php +++ b/inc/config.php @@ -153,6 +153,9 @@ $config['thumb_width'] = 255; $config['thumb_height'] = 255; + // When a thumbnailed image is going to be the same (in dimension), just copy the entire file and use that as a thumbnail instead of resizing/redrawing + $config['minimum_copy_resize'] = true; + // Store image hash in the database for r9k-like boards implementation soon // Function name for hashing // sha1_file, md5_file, etc. diff --git a/post.php b/post.php index 45c0fdf3..ca3e344c 100644 --- a/post.php +++ b/post.php @@ -414,13 +414,23 @@ $post['filehash'] = $config['file_hash']($post['file']); $post['filesize'] = filesize($post['file']); - $image = createimage($post['extension'], $post['file']); - // Create a thumbnail - $thumb = resize($image, $post['width'], $post['height'], $post['thumb'], $config['thumb_width'], $config['thumb_height']); - $post['thumbwidth'] = $thumb['width']; - $post['thumbheight'] = $thumb['height']; + if($config['minimum_copy_resize'] && $post['width'] < $config['thumb_width'] && $post['height'] < $config['thumb_height']) { + // Copy, because there's nothing to resize + copy($post['file'], $post['thumb']); + + $post['thumbwidth'] = $post['width']; + $post['thumbheight'] = $post['height']; + } else { + $image = createimage($post['extension'], $post['file']); + + // Create a thumbnail + $thumb = resize($image, $post['width'], $post['height'], $post['thumb'], $config['thumb_width'], $config['thumb_height']); + + $post['thumbwidth'] = $thumb['width']; + $post['thumbheight'] = $thumb['height']; + } } if($post['has_file'] && $config['image_reject_repost'] && $p = getPostByHash($post['filehash'])) {