Ergebnis 1 bis 5 von 5

Thema: GD: Bilder bearbeiten - Grössenbeschränkung?

  1. #1
    Großmeister(in)
    Registriert seit
    03.12.2004
    Ort
    Schweiz
    Beiträge
    514
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard GD: Bilder bearbeiten - Grössenbeschränkung?

    Hallo zusammen!

    Wieder mal ein Problem =)
    Ich möchte per Uploadformular Bilder auf einen Server laden.

    Dazu will ich noch ein kleines Vorschaubild generieren und unter einem anderen Namen speichern.

    Ist alles kein Problem. Nur bricht bei grossen Bildern das Script, dass die Bilder skaliert, plötzlich ab (ohne Fehlermeldung, trotz error_reporting(E_ALL) )

    Schlussendlich ist das Originalbild auf dem Server vorhanden, das kleine allerdings nicht.

    Bei Bildern <~800kb oder so funktioniert alles einwandfrei.

    Hat das etwas mit der Arbeitsspeicherbeschränkung von PHP zu tun?
    Dasselbe funktioniert aber auch mit
    Code:
    ini_set&#40;"memory_limit","48M"&#41;; // oder 128M etc...
    nicht.

    Weiss jemand von euch Bescheid?

    Vielen Dank!
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    gib mal bitte das ganze scipt, damit man mal eine überblick bekommt. Den nich habe soetwas auch sohon mal gebaut und es habe es mit bis zu 6mb bildern erfolgreich getestet.

  3. #3
    Großmeister(in)
    Themenstarter

    Registriert seit
    03.12.2004
    Ort
    Schweiz
    Beiträge
    514
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    ja? ok, hier mal das script.

    [php:1:b1abf1f9f0]<?php
    session_start();
    function createThumb($ordner, $quelldatei, $prefix, $maximalgroesse, $qualitaet)
    {
    //dateiinformationen auslesen
    $info = getimagesize($ordner.$quelldatei);
    $width = $info[0];
    $height = $info[1];
    $type = $info[2]; #type 2 = jpeg
    //----------------- Originalbild skalieren----------------------
    //wenn bild gr&ouml;sser ist als $maximalgroesse, bild skalieren
    if (($width > $maximalgroesse) || ($height > $maximalgroesse))
    {

    //wenn bild jpeg ist
    switch ($type)
    {
    case 1: $newimage = @imagecreatefromgif($ordner.$quelldatei); break;
    case 2: $newimage = @imagecreatefromjpeg($ordner.$quelldatei); break;
    case 3: $newimage = @imagecreatefrompng($ordner.$quelldatei); break;
    }

    //wenn querformat
    if ($width > $height)
    {
    //breite ist die gr&ouml;sse, die oben angegeben wurde
    $nwidth = $maximalgroesse;
    //h&ouml;he wird berechnet, um bild nicht zu verzerren
    $nheight = round($height/($width/$nwidth));
    }
    //wenn hochformat
    else
    {
    //h&ouml;he ist die gr&ouml;sse, die oben angegeben wurde
    $nheight = $maximalgroesse;
    //breite wird berechnet, um bild nicht zu verzerren
    $nwidth = round($width/($height/$nheight));
    }
    //bild erstellen (original &uuml;berschreiben)
    $image2 = imagecreatetruecolor($nwidth, $nheight);
    imagecopyresampled($image2, $newimage, 0, 0, 0, 0, $nwidth, $nheight, $width, $height);
    @imagedestroy($newimage);
    //imagejpeg(bild, filename, qualit&auml;t) erstellt bild
    switch ($type)
    {
    case 1:
    $r = imagegif($image2,$ordner.$prefix.$quelldatei, $qualitaet);
    break;
    case 2:
    $r = imagejpeg($image2,$ordner.$prefix.$quelldatei, $qualitaet);
    break;
    case 3:
    $r = imagepng($image2,$ordner.$prefix.$quelldatei, $qualitaet);
    break;
    }
    @imagedestroy($image2);
    if ($r)
    {
    return true;
    }
    else
    {
    return false;
    }

    }
    else
    {
    switch ($type)
    {
    case 1: $newimage = @imagecreatefromgif($ordner.$quelldatei);
    $r = @imagegif($newimage,$ordner.$prefix.$quelldatei, $qualitaet);
    break;
    case 2: $newimage = @imagecreatefromjpeg($ordner.$quelldatei);
    $r = @imagejpeg($newimage,$ordner.$prefix.$quelldatei, $qualitaet);
    break;
    case 3: $newimage = @imagecreatefrompng($ordner.$quelldatei);
    $r = @imagepng($newimage,$ordner.$prefix.$quelldatei, $qualitaet);
    break;
    }
    @imagedestroy($image2);
    @imagedestroy($newimage);
    if ($r)
    {
    return true;
    }
    else
    {
    return false;
    }

    return true;
    }
    }

    // Einbinden der Datei, die eine Datenbankverbindung aufbaut.
    include("../dbconnect.php");

    //Auswählen der Datenbank
    mysql_select_db("u4-1003802-3");

    $tag = substr($_POST["datum"],0,2);
    $monat = substr($_POST["datum"],3,2);
    $jahr = substr($_POST["datum"],6,4);
    $datum = mktime(0,0,0,$monat,$tag,$jahr);
    $titel = addslashes($_POST["titel"]);
    $titel_en = addslashes($_POST["titel_en"]);

    $autor = $_SESSION["autor"];

    $original = $_FILES["datei"]["name"];
    $quelle = $_FILES["datei"]["tmp_name"];

    $dateiname = str_replace(array(" ","ä","ö","ü"),array("_","ae","oe","ue"),$original );

    if (@copy($quelle, "../../../presse/images/" . $dateiname))
    {
    $sql = "INSERT INTO de_p_bilder (dateiname, datum, titel, titel_en, autor) VALUES ('$dateiname', '$datum', '$titel', '$titel_en', '$autor')";
    $eintragen = mysql_query($sql);
    }

    mysql_free_result($eintragen);

    createThumb("../../../presse/images/", $dateiname, "t_", 200, 70);

    header("Location: index.php?mode=pbilderauf");
    ?>[/php:1:b1abf1f9f0]


    vielleicht ist auch meine funktion für die bildskalierung zu speicheraufwändig..?

  4. #4
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    ALso die funktion ist astrein. Ich habe es mit bilder von bis zu 1,2mb getestet und ich hatte keine erhöhten CPU / Speicher ausschläge. Mein server hat ein maximalspeicher für php von 3mb und es funktioniert echt gut.

    Hast du es sonst einmal auf eien anderen server ausprobiert ??

    Sry kann dir da leider auch nicht weiterhelfen, kann den Fehler auch nicht nachvolziehen

  5. #5
    Großmeister(in)
    Themenstarter

    Registriert seit
    03.12.2004
    Ort
    Schweiz
    Beiträge
    514
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    mhm, ok.. dann werde ich es mal auf einem anderen Server testen.
    Vielen Dank für deine Bemühungen!

    mfg baloo

Ähnliche Themen

  1. RSS Feed bearbeiten
    Von driver im Forum Zope & Plone - das deutsche Hilfeforum
    Antworten: 6
    Letzter Beitrag: 16.01.2008, 19:06
  2. Bilder besser bearbeiten
    Von Dna773 im Forum Forum für Grafiken und Bildbearbeitung
    Antworten: 4
    Letzter Beitrag: 25.11.2007, 13:32
  3. videos bearbeiten
    Von pewe101 im Forum Computer - Internet Forum
    Antworten: 3
    Letzter Beitrag: 10.09.2007, 01:32
  4. PHP Dateien bearbeiten
    Von cookies im Forum HTML & CSS Forum
    Antworten: 13
    Letzter Beitrag: 12.03.2006, 02:20
  5. Logo bearbeiten
    Von xnoelx im Forum Forum für Grafiken und Bildbearbeitung
    Antworten: 9
    Letzter Beitrag: 21.01.2006, 17:27

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •