| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

29-04-2009, 17:12
|
|
=firesimon=
Banned
|
|
Registriert seit: May 2007
Beiträge: 88
|
|
[PHP5] Out of Memory beim Resizen
Hallo,
sobald ich ein Bild mit meinem Resize Tool verkleinern will kommt die folgende Meldung:
Zitat:
|
Fatal error: Out of memory (allocated 30670848) (tried to allocate 13056 bytes) in /homepages/11/c1156345/htdocs/test.php on line 22
|
Wie kann man das umgehen?
Mfg Simon
|

29-04-2009, 17:19
|
|
asp2php
Banned
|
|
Registriert seit: Feb 2004
Beiträge: 11.746
|
|
z.B. dein Script auf Endlosschleife untersuchen
|

29-04-2009, 17:19
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Re: [PHP5] Out of Memory beim Resizen
In dem man kleinere Bilder verwendet, oder dem Script mehr Speicher zugesteht (memory_limit).
(Und ggf. auch, in dem man das ganze etwas performanter programmiert, also bspw. Bildressourcen entsorgt, sobald sie nicht mehr gebraucht werden. Aber ob das bei deinem Script überhaupt der Fall ist und damit möglich wäre, kannst nur du wissen.)
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

30-04-2009, 14:38
|
|
=firesimon=
Banned
|
|
Registriert seit: May 2007
Beiträge: 88
|
|
Hallo,
es könnte gehen das ich in das Script folgenden Befehl setze, oder?
PHP-Code:
ini_set('memory_limit', '32M');
Das Skript:
PHP-Code:
function resize($path, $file, $new_width, $new_height)
{
$size = getimagesize($path.$file);
$width_old = $size[0];
$height_old = $size[1];
// Neues Format definieren, 600 px maximal bei Höhe und Breite
if ($width_old > $height_old) {
$height_new = intval($height_old * $width_new / $width_old);
} else
{
$width_new = intval($width_old * $height_new / $height_old);
}
// Bild verarbeiten
$picture_old = imagecreatefromjpeg($path.$file);
$picture_new = imagecreatetruecolor($width_new, $height_new);
imagecopyresampled($picture_new, $picture_old, 0, 0, 0, 0, $width_new, $height_new, $width_old, $height_old);
// Neues Bild speichern
$create = imagejpeg($picture_new, $path.$file);
imagedestroy($picture_new);
$bild[$i] = $newname;
return true;
}
|

30-04-2009, 14:42
|
|
pekka
PHP Master
|
|
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
|
|
Warum probierst du's nicht einfach aus?
|

30-04-2009, 14:46
|
|
=firesimon=
Banned
|
|
Registriert seit: May 2007
Beiträge: 88
|
|
Habe ich. Es klappt leider nicht.
|

01-05-2009, 23:16
|
 |
fireweasel
Registrierter Benutzer
|
|
Registriert seit: Sep 2008
Ort: At home
Beiträge: 680
|
|
Zitat:
Original geschrieben von =firesimon=
Habe ich. Es klappt leider nicht.
|
1. Muss es dir erlaubt sein, Veränderungen an der php.ini vorzunehmen.
2. Sollte das neue Speicherlimit größer sein als das alte. Dessen Größe erfährst du mit ini_get().
Lass dir mal die Abmessungen der Grafik ausgeben, die getimagesize() ermittelt hat. Das kann einen Hinweis darauf liefern, wieviel Hauptspeicher die dazu passende Image-Resource belegt. Guckst du:
Allowed memory size exhausted
__________________
PHP-Code:
class Brick implements Throwable {
// ...
}
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|