generate all (non-square) photo scales - even if the original photo is smaller than the scale target sizes.
This commit is contained in:
parent
d9753989bf
commit
bf5a1f662a
@ -88,7 +88,7 @@ Some/many of these widgets have restrictions which may restrict the type of page
|
||||
* photo_rand - display a random photo from one of your photo albums. Photo permissions are honoured
|
||||
* args:
|
||||
* album - album name (very strongly recommended if you have lots of photos)
|
||||
* scale - typically 0 (original size), 1 (640px), or 2 (320px)
|
||||
* scale - typically 0 (original size), 1 (1024px), 2, (640px), or 3 (320px)
|
||||
* style - CSS style string
|
||||
* channel_id - if not your own
|
||||
<br /> <br />
|
||||
|
@ -586,7 +586,7 @@ function scale_external_images($s, $include_link = true, $scale_replace = false)
|
||||
|
||||
if(substr($mtch[1],0,1) == '=') {
|
||||
$owidth = intval(substr($mtch[2],1));
|
||||
if(intval($owidth) > 0 && intval($owidth) < 640)
|
||||
if(intval($owidth) > 0 && intval($owidth) < 1024)
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -624,9 +624,9 @@ function scale_external_images($s, $include_link = true, $scale_replace = false)
|
||||
$orig_width = $ph->getWidth();
|
||||
$orig_height = $ph->getHeight();
|
||||
|
||||
if($orig_width > 640 || $orig_height > 640) {
|
||||
if($orig_width > 1024 || $orig_height > 1024) {
|
||||
$tag = (($match[1] == 'z') ? 'zmg' : 'img');
|
||||
$ph->scaleImage(640);
|
||||
$ph->scaleImage(1024);
|
||||
$new_width = $ph->getWidth();
|
||||
$new_height = $ph->getHeight();
|
||||
logger('scale_external_images: ' . $orig_width . '->' . $new_width . 'w ' . $orig_height . '->' . $new_height . 'h' . ' match: ' . $mtch[0], LOGGER_DEBUG);
|
||||
|
@ -193,32 +193,32 @@ function photo_upload($channel, $observer, $args) {
|
||||
unset($p['os_storage']);
|
||||
unset($p['os_path']);
|
||||
|
||||
if(($width > 1024 || $height > 1024) && (! $errors)) {
|
||||
if(($width > 1024 || $height > 1024) && (! $errors))
|
||||
$ph->scaleImage(1024);
|
||||
$p['scale'] = 1;
|
||||
$r2 = $ph->save($p);
|
||||
$smallest = 1;
|
||||
if(! $r2)
|
||||
$errors = true;
|
||||
}
|
||||
|
||||
if(($width > 640 || $height > 640) && (! $errors)) {
|
||||
$p['scale'] = 1;
|
||||
$r2 = $ph->save($p);
|
||||
$smallest = 1;
|
||||
if(! $r2)
|
||||
$errors = true;
|
||||
|
||||
if(($width > 640 || $height > 640) && (! $errors))
|
||||
$ph->scaleImage(640);
|
||||
$p['scale'] = 2;
|
||||
$r3 = $ph->save($p);
|
||||
$smallest = 2;
|
||||
if(! $r3)
|
||||
$errors = true;
|
||||
}
|
||||
|
||||
if(($width > 320 || $height > 320) && (! $errors)) {
|
||||
$p['scale'] = 2;
|
||||
$r3 = $ph->save($p);
|
||||
$smallest = 2;
|
||||
if(! $r3)
|
||||
$errors = true;
|
||||
|
||||
if(($width > 320 || $height > 320) && (! $errors))
|
||||
$ph->scaleImage(320);
|
||||
$p['scale'] = 3;
|
||||
$r3 = $ph->save($p);
|
||||
$smallest = 3;
|
||||
if(! $r3)
|
||||
$errors = true;
|
||||
}
|
||||
|
||||
$p['scale'] = 3;
|
||||
$r3 = $ph->save($p);
|
||||
$smallest = 3;
|
||||
if(! $r3)
|
||||
$errors = true;
|
||||
|
||||
if($errors) {
|
||||
q("delete from photo where resource_id = '%s' and uid = %d",
|
||||
|
@ -253,51 +253,56 @@ function photos_post(&$a) {
|
||||
intval($page_owner_uid)
|
||||
);
|
||||
|
||||
if($width > 1024 || $height > 1024) {
|
||||
if($width > 1024 || $height > 1024)
|
||||
$ph->scaleImage(1024);
|
||||
$width = $ph->getWidth();
|
||||
$height = $ph->getHeight();
|
||||
|
||||
$x = q("update photo set data = '%s', height = %d, width = %d where `resource_id` = '%s' and uid = %d and scale = 1",
|
||||
dbescbin($ph->imageString()),
|
||||
intval($height),
|
||||
intval($width),
|
||||
dbesc($resource_id),
|
||||
intval($page_owner_uid)
|
||||
);
|
||||
}
|
||||
$width = $ph->getWidth();
|
||||
$height = $ph->getHeight();
|
||||
|
||||
if($width > 640 || $height > 640) {
|
||||
$x = q("update photo set data = '%s', height = %d, width = %d where `resource_id` = '%s' and uid = %d and scale = 1",
|
||||
dbescbin($ph->imageString()),
|
||||
intval($height),
|
||||
intval($width),
|
||||
dbesc($resource_id),
|
||||
intval($page_owner_uid)
|
||||
);
|
||||
|
||||
|
||||
if($width > 640 || $height > 640)
|
||||
$ph->scaleImage(640);
|
||||
$width = $ph->getWidth();
|
||||
$height = $ph->getHeight();
|
||||
|
||||
$x = q("update photo set data = '%s', height = %d, width = %d where `resource_id` = '%s' and uid = %d and scale = 2",
|
||||
dbescbin($ph->imageString()),
|
||||
intval($height),
|
||||
intval($width),
|
||||
dbesc($resource_id),
|
||||
intval($page_owner_uid)
|
||||
);
|
||||
}
|
||||
$width = $ph->getWidth();
|
||||
$height = $ph->getHeight();
|
||||
|
||||
if($width > 320 || $height > 320) {
|
||||
$x = q("update photo set data = '%s', height = %d, width = %d where `resource_id` = '%s' and uid = %d and scale = 2",
|
||||
dbescbin($ph->imageString()),
|
||||
intval($height),
|
||||
intval($width),
|
||||
dbesc($resource_id),
|
||||
intval($page_owner_uid)
|
||||
);
|
||||
|
||||
|
||||
if($width > 320 || $height > 320)
|
||||
$ph->scaleImage(320);
|
||||
$width = $ph->getWidth();
|
||||
$height = $ph->getHeight();
|
||||
|
||||
$x = q("update photo set data = '%s', height = %d, width = %d where `resource_id` = '%s' and uid = %d and scale = 3",
|
||||
dbescbin($ph->imageString()),
|
||||
intval($height),
|
||||
intval($width),
|
||||
dbesc($resource_id),
|
||||
intval($page_owner_uid)
|
||||
);
|
||||
}
|
||||
$width = $ph->getWidth();
|
||||
$height = $ph->getHeight();
|
||||
|
||||
$x = q("update photo set data = '%s', height = %d, width = %d where `resource_id` = '%s' and uid = %d and scale = 3",
|
||||
dbescbin($ph->imageString()),
|
||||
intval($height),
|
||||
intval($width),
|
||||
dbesc($resource_id),
|
||||
intval($page_owner_uid)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// @FIXME This query includes data of all thumbnails and could probably
|
||||
// be made much more memory efficient.
|
||||
|
||||
$p = q("SELECT * FROM `photo` WHERE `resource_id` = '%s' AND `uid` = %d ORDER BY `scale` DESC",
|
||||
dbesc($resource_id),
|
||||
intval($page_owner_uid)
|
||||
|
Reference in New Issue
Block a user