php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.06.2009, 13:07  
Erfahrener Benutzer
 
Benutzerbild von Squall
 
Registriert seit: 19.03.2009
Beiträge: 539
PHP-Kenntnisse:
Fortgeschritten
Squall befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Wie kann man Bilder sinnvoll verkleinern?

Hallo zusammen,

ich arbeite gerade an einem Script daß mir meine Bilder auf eine bestimmte größe verkleinern/vergrössern soll. Dadurch sind jetzt so einige Fragen entstanden.


1. Ich überlege die größe der Bilder Variabel zu halten, weswegen ich keine Thumbnails erstellen kann sondern die Bilder vor der Ausgabe runterrechnen muss.


Fragen:
- Wie wirkt sich sowas in der Performance aus?
- Würde es mehr sinn machen die Bilder als Thumbs zu speichern und wenn sich die Variable mit der größe ändert nochmal alle zu überarbeiten?


Ich habe bisher nur eine möglichkeit gefunden die Bilder runter zu rechnen indem ich dem img-tag als src ein PHP Script übergebe das ein img zurückgibt.

image.php
PHP-Code:
    // $img & $width kommen normalerweise aus der DB
    
$img 'bild.jpg';
    
$width 200;

    
$size getimagesize($img);

    
$height round($width / ($size[0] / $size[1]));

    
$src imagecreatefromjpeg($img);
    
$dest imagecreatetruecolor($width$height);

    
imagecopyresampled($dest$src0000$width$height$size[0], $size[1]);

    
header('Content-Type: image/jpeg');
    
imagejpeg($dest);

    
imagedestroy($dest);
    
imagedestroy($src); 
image.html
PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
>
<
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <
head>
        <
title>Image-Sizer</title>
        <
meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <
meta http-equiv="Content-Style-Type" content="text/css" />
    </
head>
    <
body>
        <
div>
            <
p>Hallo Welt</p>
            <
img src="image.php" alt="" />
        </
div>
    </
body>
</
html
Das der Code kagge ist braucht mir keiner sagen , aber mir fällt auch nichts anderes ein wie ich sowas machen kann, da ich mit der GD-Lib noch nicht so viel erfahrung habe.


2. Eigentlich ist es mir egal wie ich es anstelle das mein Script funzt, wichtig sind mir "nur" 3 Sachen:

1. Original Bilder sollen gespeichert werden (egal wie groß).
2. An den Client soll nur eine kompakte version des Bildes ausgeliefert werden.
3. Die Anzeigegröße eines Bildes kann sich jederzeit ändern.
Danke & Gruß
Squall
Squall ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.06.2009, 13:36  
Benutzer
 
Registriert seit: 10.06.2009
Beiträge: 44
PHP-Kenntnisse:
Anfänger
deedee befindet sich auf einem aufstrebenden Ast
Standard

Also wenn du schon nicht beim Hochladen die Größe ändern möchtest, würde ich es so machen:

PHP-Code:
$nMaxW=??? // max. Breite
$nMaxH=??? // max. Höhe
$strPath=??? // Pfad zum Bild
$handleImg=imagecreatefrom???($strPath); // jpeg, png, gif?
$nW=imagesx($handleImg);
$nH=imagesy($handleImg);
if((
$nFactor=max($nW/$nMaxW,$nH/$nMaxH))>1)
{  
/*
    * Thumbnail erzeugen:
    */
   
$nW=round($nW/$nFactor);
   
$nH=round($nH/$nFactor);
}
echo 
'<img src="'.$strPath.'" width="'.$nW.'"height="'.$nH.'"/>'
Habe ich nicht getestet. Ich hoffe, das passt.

Aber ich glaube, beim Upload wirst du die Größe auf jeden Fall kontrollieren müssen. Sonst ist womöglich deine Festplatte bald voll. Ich würde zumindest auf 2000x2000 Pixel runterskalieren, falls die Bilder größer sind.

Du kannst aber auch folgendes machen:
1) Bild in Originalgröße speichern UND
2) zusätzlich einen Thumbnail erzeugen UND sofern du willst
3) noch mit dem Script arbeiten, das ich oben reingepostet habe (da kannst du dann entweder das Originalbild oder den Thumbnail als Ausgangsmaterial nehmen)

Geändert von deedee (12.06.2009 um 13:41 Uhr).
deedee ist offline  
Alt 12.06.2009, 13:49  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Caching benutzen. Zugriff auf nicht vorhandenes Thumb startet dessen Generierung. Bei Grössenänderung Cache komplett leeren.
Immer die Vorschaubilder on the fly zu erzeugen zu wollen ist Wahnsinn.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 12.06.2009, 13:49  
Erfahrener Benutzer
 
Benutzerbild von Squall
 
Registriert seit: 19.03.2009
Beiträge: 539
PHP-Kenntnisse:
Fortgeschritten
Squall befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von deedee Beitrag anzeigen
Aber ich glaube, beim Upload wirst du die Größe auf jeden Fall kontrollieren müssen. Sonst ist womöglich deine Festplatte bald voll. Ich würde zumindest auf 2000x2000 Pixel runterskalieren, falls die Bilder größer sind.
Das auf jeden fall, ist sowohl am server als auch im script begrenzt.

Zitat:
Zitat von deedee Beitrag anzeigen
Du kannst aber auch folgendes machen:
1) Bild in Originalgröße speichern
Soweit ok

Zitat:
Zitat von deedee Beitrag anzeigen
2) zusätzlich einen Thumbnail erzeugen
Das Problem dabei ist wie gesagt das ich bei einer größenänderung dann nochmal alle bilder überarbeiten müsste.

Zitat:
Zitat von deedee Beitrag anzeigen
3) UND sofern du willst noch mit dem Script arbeiten, das ich oben reingepostet habe (da kannst du dann entweder das Originalbild oder den Thumbnail als Ausgangsmaterial nehmen)
Das Script mag ja ganz schön sein, aber mein ziel ist es die Daten die ich dem Client sende so gering wie möglich zu halten
Squall ist offline  
Alt 12.06.2009, 14:04  
Erfahrener Benutzer
 
Benutzerbild von Squall
 
Registriert seit: 19.03.2009
Beiträge: 539
PHP-Kenntnisse:
Fortgeschritten
Squall befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Caching benutzen.
In wie fern? meinst du das ich mich damit abfinden soll daß die Seite bei ersten aufruf halt länger laden muss?

Zitat:
Zitat von nikosch Beitrag anzeigen
Zugriff auf nicht vorhandenes Thumb startet dessen Generierung.
Verstehe nicht was du meinst.

Zitat:
Zitat von nikosch Beitrag anzeigen
Immer die Vorschaubilder on the fly zu erzeugen zu wollen ist Wahnsinn.
Hatte ich mir eigentlich fast schon gedacht, aber mir fällt eben nix anderes ein wodurch ich garantieren könnte das die grösse meiner bilder sich immer dem übergeordneten element anpasst.

Natürlich könnte ich auch ein thumb nach dem pi mal daumen prinzip speichern und dann über css alles andere machen, aber ich versuche zuerst eine perfekte lösung zu finden bevor ich das schlampen anfange ^^
Squall ist offline  
Alt 12.06.2009, 14:09  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
aber ich versuche zuerst eine perfekte lösung zu finden bevor ich das schlampen anfange
Dann solltest Du uns auch alle Informationen geben.
Zitat:
meinst du das ich mich damit abfinden soll daß die Seite bei ersten aufruf halt länger laden muss?
Klingt ja so, als würdest Du auf einer Seite sofort ungeheuer viele Thumbs anzeigen würdest.
Zitat:
Verstehe nicht was du meinst.
Denk drüber nach oder informiere Dich über Caching. Das ist ein typisches Verfahren.

Zitat:
das die grösse meiner bilder sich immer dem übergeordneten element anpasst.
Was immer das heissen soll.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 12.06.2009, 14:11  
Erfahrener Benutzer
 
Benutzerbild von Squall
 
Registriert seit: 19.03.2009
Beiträge: 539
PHP-Kenntnisse:
Fortgeschritten
Squall befindet sich auf einem aufstrebenden Ast
Standard

ok, werd mir mal alles durch den kopf gehen lassen und meld mich spätestens am montag wieder

THX
Squall ist offline  
Alt 17.06.2009, 15:55  
Erfahrener Benutzer
 
Benutzerbild von Squall
 
Registriert seit: 19.03.2009
Beiträge: 539
PHP-Kenntnisse:
Fortgeschritten
Squall befindet sich auf einem aufstrebenden Ast
Standard

Danke für deine Hilfe nikosch,

ich habe zwar immernoch nicht die "perfekte" lösung, aber ich weiß zumindest das es nicht unbedingt meine beste idee war diese on th Fly zu erzeugen ^^

Grüße
Squall
Squall ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bilder ohne DB sicher speichern Diet PHP Tipps 2005 6 25.03.2009 00:07
class für bilder mit runden ecken kid01 PHP Tipps 2008 1 03.03.2008 08:35
bilder verkleinern 022.9 PHP Tipps 2006 4 26.10.2006 08:23
bilder zu groß?! lindner PHP Tipps 2006 9 19.10.2006 08:32
Bilder löschen die öffter vorhanden sind?! Peoples PHP Tipps 2006 6 28.05.2006 19:34
Bilder "schützen" PHP Tipps 2006 4 06.03.2006 15:25
bilder uploaden und verkleinern PHP Tipps 2006 1 13.01.2006 00:28
Bilder Ordner hochladen? CHRIS PHP Tipps 2005-2 3 30.12.2005 17:20
Bilder löschen PHP Tipps 2005-2 4 24.10.2005 11:37
Bilder aus einem unterverzeichis anzeigen.Hilfe PHP Tipps 2005-2 3 12.09.2005 15:36
[Erledigt] Dynamisch Bilder übereinander positionieren? HTML, Usability und Barrierefreiheit 4 15.08.2005 12:52
Mehrere Bilder Hochladen und bearbeiten PHP Tipps 2005-2 7 23.07.2005 13:48
Bildübersicht alle Bilder im Ordner... PHP Tipps 2004 46 07.08.2004 20:20
Welcher Provider? Will Bilder uploaden und verkleinern? PHP Tipps 2004 7 08.07.2004 16:56
Bilder vor dem download automatisch verkleinern PHP Tipps 2004 2 08.07.2004 02:04

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php bilder runterrechnen, http://www.php.de/php-einsteiger/55993-erledigt-wie-kann-man-bilder-sinnvoll-verkleinern.html, fotos sinnvoll verkleinern, php script bilder verkleinern, php bild runterrechnen, bilder sinnvoll verkleinern, php bild vor ausgabe verkleinern, bilder runterrechnen, bilder on the fly runterechnen, php-script zum rechnen von bildern, html code für länge von bild, photos variabel verkleinern, www.nackte mansbilder.de, bilder runterskalieren, php bilder hochladen und automatisch runterrechnen, php bild verkleinern on the fly, php bilder sinnvoll verkleinern, bilder variabel verkleinern, wie kann man bilder vergrößern verkleinern css, php bild automatisch auf größe

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:13 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum