Schrift
[thread]6035[/thread]

Bild verkleinn: aber nur bei größeren Bildern



<< >> 8 Einträge, 1 Seite
Froschpopo
 2004-01-25 01:48
#79484 #79484
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Hi,

mit dem folgenden Code verkleinere ich Bild, bzw optimiere Sie.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
my ($width,$height) = imgsize($pic);
my ($thumbnailwidth, $thumbnailheight) = ($width, $height);

my $max_height = 250;
my $max_width = 300;

my $relation = ($height / $max_height) > ($width / $max_width)
? $height / $max_height : $width / $max_width;

$thumbnailheight = sprintf ("%.0f",$height / $relation);

$thumbnailwidth = sprintf ("%.0f",$width / $relation);

my $big = GD::Image->newFromJpeg("/usr/local/httpd/htdocs/userpics/$baba");

my $lit = new GD::Image($thumbnailwidth, $thumbnailheight);

$lit->copyResized($big, 0, 0, 0, 0, $thumbnailwidth, $thumbnailheight, $width, $height);

my $jpeg_data = $lit->jpeg;

Nun habe ich zwei Anliegen:
Ich möchte, dass Bilder die Kleiner sind, nicht vergrößert werden. D.h. ich will nur Bilder in o.g. Maß verkleinern, die größer sind. Der obere Code aber vergrößert auch Bilder, die nur 10x10 Pixel groß sind auf 250x300. Kann mir da jemand behilflich sein... ? Ich komm einfach nicht drauf...

Mein zweites anliegen poste ich, nachdem wir dieses Problem hier behoben haben.
Dubu
 2004-01-25 02:35
#79485 #79485
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Schau einfach, ob $relation groesser oder kleiner als 1 ist.
tomlong
 2004-01-25 02:37
#79486 #79486
User since
2003-08-04
93 Artikel
BenutzerIn
[default_avatar]
du machst ne simple if Bedingung ...
wenn Werte des Startbildes kleiner als Werte des Endbildes (die hast du ja) dann soll er nix verändern

oder hab ich da was falsch verstanden ... ich meine ... einfachere Probleme gibts eigenlich kaum beim Proggen :p
Live long and prosper!
42;
Crian
 2004-01-25 03:22
#79487 #79487
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Wahrscheinlich ist es mit dem Problem so wie mit dem Wald und den Bäumen :)\n\n

<!--EDIT|Crian|1074993782-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
pq
 2004-01-26 15:39
#79488 #79488
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=Froschpopo,25.01.2004, 00:48]
Ich möchte, dass Bilder die Kleiner sind, nicht vergrößert werden. D.h. ich will nur Bilder in o.g. Maß verkleinern, die größer sind. Der obere Code aber vergrößert auch Bilder, die nur 10x10 Pixel groß sind auf 250x300.[/quote]
also lies dir deine obigen drei sätze nochmal durch und sag uns dann, ob
du das selbst verstehen würdest. einmal willst du vergrößern, dann
verkleinern, dann wieder vergrößern.
ausserdem, wie definierst du größer und kleiner?
ist ein bild 1x400 grösser als 5x100, weil eine seite länger ist? oder ist es
kleiner, weil es weniger fläche hat?
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Crian
 2004-01-26 16:21
#79489 #79489
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Da es um Thumbnails geht, vermute ich "kleiner" bedeutet, dass beide Längenausdehnungen kleiner gleich den angegebenen Größen sein sollen...
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Strat
 2004-01-26 20:22
#79490 #79490
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
auf meiner HP ist unter Downloads -> Tk-CreateThumbnailgallery ein tk-script, das eine Webgalerie erzeugt. vielleicht hilft dir das weiter?
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
esskar
 2004-01-27 06:38
#79491 #79491
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
my ($width,$height) = imgsize($pic);
my ($thumbnailwidth, $thumbnailheight) = ($width, $height);

my $max_height = 250;
my $max_width = 300;

my $relation = ($height / $max_height) > ($width / $max_width)
             ? $height / $max_height  : $width / $max_width;

my $big = GD::Image->newFromJpeg("/usr/local/httpd/htdocs/userpics/$baba");
my $jpeg_data = $big;

if($relation > 1)
{
  $thumbnailheight = sprintf ("%.0f",$height / $relation);
  $thumbnailwidth = sprintf ("%.0f",$width / $relation);

  my $lit = new GD::Image($thumbnailwidth, $thumbnailheight);

  $lit->copyResized($big, 0, 0, 0, 0, $thumbnailwidth, $thumbnailheight, $width, $height);

  $jpeg_data = $lit->jpeg;
}
\n\n

<!--EDIT|esskar|1075178353-->
<< >> 8 Einträge, 1 Seite



View all threads created 2004-01-25 01:48.