mirror of
https://github.com/danpros/htmly.git
synced 2026-04-20 20:46:26 +05:30
Accept height parameter
This commit is contained in:
parent
1805312500
commit
4299c6916f
2 changed files with 28 additions and 6 deletions
|
|
@ -625,16 +625,31 @@ function flash($key, $msg = null, $now = false)
|
||||||
$x[$key] = $msg;
|
$x[$key] = $msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
function create_thumb($src, $desired_width) {
|
function create_thumb($src, $desired_width = null, $desired_height = null) {
|
||||||
|
|
||||||
$dir = 'content/images/thumbnails';
|
$dir = 'content/images/thumbnails';
|
||||||
|
|
||||||
if (!is_dir($dir)) {
|
if (!is_dir($dir)) {
|
||||||
mkdir($dir);
|
mkdir($dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$w = config('thumbnail.width');
|
||||||
|
if (empty($w)) {
|
||||||
|
$w = 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_null($desired_width)) {
|
||||||
|
$desired_width = $w;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!is_null($desired_height)) {
|
||||||
|
$h = 'x' . $desired_height;
|
||||||
|
} else {
|
||||||
|
$h = null;
|
||||||
|
}
|
||||||
|
|
||||||
$fileName = pathinfo($src, PATHINFO_FILENAME);
|
$fileName = pathinfo($src, PATHINFO_FILENAME);
|
||||||
$thumbFile = $dir . '/' . $fileName . '-' . $desired_width . '.webp';
|
$thumbFile = $dir . '/' . $fileName . '-' . $desired_width . $h .'.webp';
|
||||||
|
|
||||||
if (file_exists($thumbFile)) {
|
if (file_exists($thumbFile)) {
|
||||||
return site_url() . $thumbFile;
|
return site_url() . $thumbFile;
|
||||||
|
|
@ -646,13 +661,20 @@ function create_thumb($src, $desired_width) {
|
||||||
$height = imagesy($source_image);
|
$height = imagesy($source_image);
|
||||||
|
|
||||||
/* find the "desired height" of this thumbnail, relative to the desired width */
|
/* find the "desired height" of this thumbnail, relative to the desired width */
|
||||||
$desired_height = floor($height * ($desired_width / $width));
|
if (is_null($desired_height)) {
|
||||||
|
$desired_height = floor($height * ($desired_width / $width));
|
||||||
|
}
|
||||||
|
|
||||||
|
$ratio = max($desired_width/$width, $desired_height/$height);
|
||||||
|
$height = $desired_height / $ratio;
|
||||||
|
$x = ($width - $desired_width / $ratio) / 2;
|
||||||
|
$width = $desired_width / $ratio;
|
||||||
|
|
||||||
/* create a new, "virtual" image */
|
/* create a new, "virtual" image */
|
||||||
$virtual_image = imagecreatetruecolor($desired_width, $desired_height);
|
$virtual_image = imagecreatetruecolor($desired_width, $desired_height);
|
||||||
|
|
||||||
/* copy source image at a resized size */
|
/* copy source image at a resized size */
|
||||||
imagecopyresampled($virtual_image, $source_image, 0, 0, 0, 0, $desired_width, $desired_height, $width, $height);
|
imagecopyresampled($virtual_image, $source_image, 0, 0, $x, 0, $desired_width, $desired_height, $width, $height);
|
||||||
|
|
||||||
/* create the physical thumbnail image to its destination */
|
/* create the physical thumbnail image to its destination */
|
||||||
imagewebp($virtual_image, $thumbFile, 75);
|
imagewebp($virtual_image, $thumbFile, 75);
|
||||||
|
|
|
||||||
|
|
@ -2402,7 +2402,7 @@ function get_thumbnail($text, $url = null)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get image from post and Youtube thumbnail.
|
// Get image from post and Youtube thumbnail.
|
||||||
function get_image($text, $width = null)
|
function get_image($text, $width = null, $height = null)
|
||||||
{
|
{
|
||||||
libxml_use_internal_errors(true);
|
libxml_use_internal_errors(true);
|
||||||
$dom = new DOMDocument();
|
$dom = new DOMDocument();
|
||||||
|
|
@ -2415,7 +2415,7 @@ function get_image($text, $width = null)
|
||||||
if(is_null($width)) {
|
if(is_null($width)) {
|
||||||
return $imgSource;
|
return $imgSource;
|
||||||
} else {
|
} else {
|
||||||
return create_thumb($imgSource, $width);
|
return create_thumb($imgSource, $width, $height);
|
||||||
}
|
}
|
||||||
} elseif ($vidTags->length > 0) {
|
} elseif ($vidTags->length > 0) {
|
||||||
$vidElement = $vidTags->item(0);
|
$vidElement = $vidTags->item(0);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue