Thread GD-Problem: Fehler (27 answers)
Opened by Froschpopo at 2004-07-21 21:02

Froschpopo
 2004-07-21 21:02
#84718 #84718
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
ich habe ein programm, welches ca. 14.000 Bilder verkleinert.
Ich durchlaufe die Bilder in einer Schleife. Irgendwann bleibt diese jedoch mit einer Fehlermeldung von GD stehen:
Code: (dl )
1
2
3
Corrupt JPEG data: 2385 extraneous bytes before marker 0x51
gd-jpeg: JPEG library reports unrecoverable error: Unsupported marker type 0x51
source is not of type GD::Image at thumbs.pl line 29.

ich habe geschaut, auf welches Bild sich der Fehler bezieht. Laut der Liste der Dateien auf das Bild 207464.jpg, da der Fehler dort auftritt. Also habe ich es entfernt. aber der Fehler tritt trotzdem wieder genau dort auf.
Nun möchte ich gerne diese Fehlermeldung abschalten, sprich: Ich will dass der Fehler einfach von GD ignoriert wird.. ich werde ja dann später sehen, welches Bild er nicht verkleinert hat.
mein Programm zur Bildverkleinerung sieht so aus:
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
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/perl

use strict;
use GD;
use Image::Size;

my ($width,$height);
my ($thumbnailwidth, $thumbnailheight);
my $max_height;
my $max_width;
my $relation;
my $big;
my $lit;

chdir("/usr/local/httpd/htdocs/thumbs/") || die $!;
for(glob("*.jpg"))
{
print "$_\n";
($width,$height) = imgsize($_);
($thumbnailwidth, $thumbnailheight) = ($width, $height);

$max_height = 80;
$max_width = 80;
$relation = ($height / $max_height) > ($width / $max_width) ? $height / $max_height : $width / $max_width;
$thumbnailheight = sprintf ("%.0f",$height / $relation);
$thumbnailwidth = sprintf ("%.0f",$width / $relation);
$big = GD::Image->newFromJpeg("/usr/local/httpd/htdocs/thumbs/$_");
$lit = new GD::Image($thumbnailwidth,$thumbnailheight);
$lit->copyResized($big, 0, 0, 0, 0, $thumbnailwidth, $thumbnailheight, $width, $height);
my $jpeg_data = $lit->jpeg;
open (OUTFILE,">/usr/local/httpd/htdocs/thumbs/$_");
print OUTFILE $jpeg_data;
close OUTFILE;

}

es ist wirklich sehr eilig, denn die User sehen eine Fehlermeldung (ca. 21.000 User) solang das Problem nicht behoben ist!

View full thread GD-Problem: Fehler