photo rotation
This commit is contained in:
parent
8ffb65ceef
commit
61dba985c1
4 changed files with 75 additions and 4 deletions
|
@ -87,6 +87,12 @@ class Photo {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function rotate($degrees) {
|
||||||
|
$this->image = imagerotate($this->image,$degrees,0);
|
||||||
|
$this->width = imagesx($this->image);
|
||||||
|
$this->height = imagesy($this->image);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function scaleImageUp($min) {
|
public function scaleImageUp($min) {
|
||||||
|
|
|
@ -287,6 +287,7 @@ function photos_post(&$a) {
|
||||||
|
|
||||||
if(($a->argc > 2) && ((x($_POST,'desc') !== false) || (x($_POST,'newtag') !== false)) || (x($_POST,'albname') !== false)) {
|
if(($a->argc > 2) && ((x($_POST,'desc') !== false) || (x($_POST,'newtag') !== false)) || (x($_POST,'albname') !== false)) {
|
||||||
|
|
||||||
|
|
||||||
$desc = ((x($_POST,'desc')) ? notags(trim($_POST['desc'])) : '');
|
$desc = ((x($_POST,'desc')) ? notags(trim($_POST['desc'])) : '');
|
||||||
$rawtags = ((x($_POST,'newtag')) ? notags(trim($_POST['newtag'])) : '');
|
$rawtags = ((x($_POST,'newtag')) ? notags(trim($_POST['newtag'])) : '');
|
||||||
$item_id = ((x($_POST,'item_id')) ? intval($_POST['item_id']) : 0);
|
$item_id = ((x($_POST,'item_id')) ? intval($_POST['item_id']) : 0);
|
||||||
|
@ -302,6 +303,60 @@ function photos_post(&$a) {
|
||||||
$albname = datetime_convert('UTC',date_default_timezone_get(),'now', 'Y');
|
$albname = datetime_convert('UTC',date_default_timezone_get(),'now', 'Y');
|
||||||
|
|
||||||
|
|
||||||
|
if((x($_POST,'rotate') !== false) && (intval($_POST['rotate']) == 1)) {
|
||||||
|
logger('rotate');
|
||||||
|
|
||||||
|
$r = q("select * from photo where `resource-id` = '%s' and uid = %d and scale = 0 limit 1",
|
||||||
|
dbesc($resource_id),
|
||||||
|
intval($page_owner_uid)
|
||||||
|
);
|
||||||
|
if(count($r)) {
|
||||||
|
$ph = new Photo($r[0]['data']);
|
||||||
|
if($ph->is_valid()) {
|
||||||
|
$ph->rotate(270);
|
||||||
|
|
||||||
|
$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 = 0 limit 1",
|
||||||
|
dbesc($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 = 1 limit 1",
|
||||||
|
dbesc($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 = 2 limit 1",
|
||||||
|
dbesc($ph->imageString()),
|
||||||
|
intval($height),
|
||||||
|
intval($width),
|
||||||
|
dbesc($resource_id),
|
||||||
|
intval($page_owner_uid)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$p = q("SELECT * FROM `photo` WHERE `resource-id` = '%s' AND `uid` = %d ORDER BY `scale` DESC",
|
$p = q("SELECT * FROM `photo` WHERE `resource-id` = '%s' AND `uid` = %d ORDER BY `scale` DESC",
|
||||||
dbesc($resource_id),
|
dbesc($resource_id),
|
||||||
intval($page_owner_uid)
|
intval($page_owner_uid)
|
||||||
|
@ -1105,7 +1160,7 @@ function photos_content(&$a) {
|
||||||
$photo = array(
|
$photo = array(
|
||||||
'href' => $a->get_baseurl() . '/photo/' . $hires['resource-id'] . '-' . $hires['scale'] . '.jpg',
|
'href' => $a->get_baseurl() . '/photo/' . $hires['resource-id'] . '-' . $hires['scale'] . '.jpg',
|
||||||
'title'=> t('View Full Size'),
|
'title'=> t('View Full Size'),
|
||||||
'src' => $a->get_baseurl() . '/photo/' . $lores['resource-id'] . '-' . $lores['scale'] . '.jpg'
|
'src' => $a->get_baseurl() . '/photo/' . $lores['resource-id'] . '-' . $lores['scale'] . '.jpg' . '?f=&_u=' . datetime_convert('','','','ymdhis')
|
||||||
);
|
);
|
||||||
|
|
||||||
if($nextlink)
|
if($nextlink)
|
||||||
|
@ -1185,6 +1240,7 @@ function photos_content(&$a) {
|
||||||
$edit_tpl = get_markup_template('photo_edit.tpl');
|
$edit_tpl = get_markup_template('photo_edit.tpl');
|
||||||
$edit = replace_macros($edit_tpl, array(
|
$edit = replace_macros($edit_tpl, array(
|
||||||
'$id' => $ph[0]['id'],
|
'$id' => $ph[0]['id'],
|
||||||
|
'$rotate' => t('Rotate CW'),
|
||||||
'$album' => template_escape($ph[0]['album']),
|
'$album' => template_escape($ph[0]['album']),
|
||||||
'$newalbum' => t('New album name'),
|
'$newalbum' => t('New album name'),
|
||||||
'$nickname' => $a->data['user']['nickname'],
|
'$nickname' => $a->data['user']['nickname'],
|
||||||
|
|
|
@ -17,6 +17,11 @@
|
||||||
<input name="newtag" id="photo-edit-newtag" size="84" title="$help_tags" type="text" />
|
<input name="newtag" id="photo-edit-newtag" size="84" title="$help_tags" type="text" />
|
||||||
|
|
||||||
<div id="photo-edit-tags-end"></div>
|
<div id="photo-edit-tags-end"></div>
|
||||||
|
<div id="photo-edit-rotate-wrapper">
|
||||||
|
<div id="photo-edit-rotate-label">$rotate</div>
|
||||||
|
<input type="checkbox" name="rotate" value="1" />
|
||||||
|
</div>
|
||||||
|
<div id="photo-edit-rotate-end"></div>
|
||||||
|
|
||||||
<div id="photo-edit-perms" class="photo-edit-perms" >
|
<div id="photo-edit-perms" class="photo-edit-perms" >
|
||||||
<a href="#photo-edit-perms-select" id="photo-edit-perms-menu" class="button" title="$permissions"/>
|
<a href="#photo-edit-perms-select" id="photo-edit-perms-menu" class="button" title="$permissions"/>
|
||||||
|
|
|
@ -2118,7 +2118,7 @@ aside input[type='text'] {
|
||||||
margin-bottom: 15px;
|
margin-bottom: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#photo-edit-caption-label, #photo-edit-tags-label, #photo-edit-albumname-label {
|
#photo-edit-caption-label, #photo-edit-tags-label, #photo-edit-albumname-label, #photo-edit-rotate-label {
|
||||||
float: left;
|
float: left;
|
||||||
width: 150px;
|
width: 150px;
|
||||||
}
|
}
|
||||||
|
@ -2127,7 +2127,7 @@ aside input[type='text'] {
|
||||||
margin-bottom: 15px;
|
margin-bottom: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#photo-edit-caption, #photo-edit-newtag, #photo-edit-albumname {
|
#photo-edit-caption, #photo-edit-newtag, #photo-edit-albumname, #photo-edit-rotate {
|
||||||
float: left;
|
float: left;
|
||||||
margin-bottom: 25px;
|
margin-bottom: 25px;
|
||||||
}
|
}
|
||||||
|
@ -2138,10 +2138,14 @@ aside input[type='text'] {
|
||||||
margin-bottom: 25px;
|
margin-bottom: 25px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#photo-edit-caption-end, #photo-edit-tags-end, #photo-edit-albumname-end {
|
#photo-edit-caption-end, #photo-edit-tags-end, #photo-edit-albumname-end, #photo-edit-rotate-end {
|
||||||
clear: both;
|
clear: both;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#photo-edit-rotate-end {
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
#photo-edit-delete-button {
|
#photo-edit-delete-button {
|
||||||
margin-left: 200px;
|
margin-left: 200px;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue