summaryrefslogtreecommitdiff
path: root/lib/VNDB/Handler/Chars.pm
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2013-01-05 13:18:33 +0100
committerYorhel <git@yorhel.nl>2013-01-05 13:18:33 +0100
commit68e04dade4a8bddffb13c09114f9c34867d2077b (patch)
tree7e6776452b421a6bfa8ada4ac96f123d9ffe8cf3 /lib/VNDB/Handler/Chars.pm
parent5fb01aeb58c77d2abda4e11d72be2217215a0ce5 (diff)
Don't use Multi for processing character images
Diffstat (limited to 'lib/VNDB/Handler/Chars.pm')
-rw-r--r--lib/VNDB/Handler/Chars.pm23
1 files changed, 14 insertions, 9 deletions
diff --git a/lib/VNDB/Handler/Chars.pm b/lib/VNDB/Handler/Chars.pm
index d96d1359..ed1ae733 100644
--- a/lib/VNDB/Handler/Chars.pm
+++ b/lib/VNDB/Handler/Chars.pm
@@ -50,8 +50,7 @@ sub page {
[ main => htmlize => sub { $_[0] ? sprintf '<a href="/c%d">c%d</a>', $_[0], $_[0] : mt '_revision_empty' } ],
[ main_spoil=> serialize => sub { mt "_spoil_$_[0]" } ],
[ image => htmlize => sub {
- return $_[0] > 0 ? sprintf '<img src="%s" />', imgurl(ch => $_[0])
- : mt $_[0] < 0 ? '_chdiff_image_proc' : '_chdiff_image_none';
+ return $_[0] ? sprintf '<img src="%s" />', imgurl(ch => $_[0]) : mt '_chdiff_image_none';
}],
[ traits => join => '<br />', split => sub {
map sprintf('%s<a href="/i%d">%s</a> (%s)', $_->{group}?qq|<b class="grayedout">$_->{groupname} / </b> |:'',
@@ -107,8 +106,6 @@ sub charTable {
div class => 'charimg';
if(!$r->{image}) {
p mt '_charp_noimg';
- } elsif($r->{image} < 0) {
- p mt '_charp_imgproc';
} else {
img src => imgurl(ch => $r->{image}), alt => $r->{name};
}
@@ -376,8 +373,7 @@ sub edit {
chare_img => [ mt('_chare_image'), [ static => nolabel => 1, content => sub {
div class => 'img';
p mt '_chare_image_none' if !$frm->{image};
- p mt '_chare_image_processing' if $frm->{image} && $frm->{image} < 0;
- img src => imgurl(ch => $frm->{image}) if $frm->{image} && $frm->{image} > 0;
+ img src => imgurl(ch => $frm->{image}) if $frm->{image};
end;
div;
@@ -440,13 +436,22 @@ sub _uploadimage {
$frm->{_err} = [ 'toolarge' ] if length($imgdata) > 1024*1024;
return undef if $frm->{_err};
- # get image ID and save it, to be processed by Multi
+ # resize/compress
+ my $im = Image::Magick->new;
+ $im->BlobToImage($imgdata);
+ $im->Set(magick => 'JPEG');
+ my($ow, $oh) = ($im->Get('width'), $im->Get('height'));
+ my($nw, $nh) = imgsize($ow, $oh, @{$self->{ch_size}});
+ $im->Thumbnail(width => $nw, height => $nh);
+ $im->Set(quality => 90);
+
+ # Get ID and save
my $imgid = $self->dbCharImageId;
my $fn = imgpath(ch => $imgid);
- $self->reqSaveUpload('img', $fn);
+ $im->Write($fn);
chmod 0666, $fn;
- return -1*$imgid;
+ return $imgid;
}