 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
24.05.2005, 11:21
|
#1
|
|
Guest
Registriert seit: Mar 2004
Ort: Süddeutschland
|
Thumbnail-Generator
Dieses Script verändert die Größe eines Bildes. Die GET-Parameter sind alle erforderlich. 'w' steht für width und gibt die maximale Breite an, dasselbe gilt für 'h' (height), Höhe. 'file' gibt den Pfad zum Bild an.
Code:
Code:
<?php
if(!empty($_GET['file']) && !empty($_GET['w']) && !empty($_GET['h']))
{
if(preg_match("/.(jpg|jpeg)$/i", $_GET['file'], $regs)) $type = $regs[1];
if(preg_match("/.(png)$/i", $_GET['file'], $regs)) $type = $regs[1];
if(preg_match("/.(gif)$/i", $_GET['file'], $regs)) $type = $regs[1];
switch($type)
{
case "png":
$function_image_create = "ImageCreateFromPng";
$function_image_new = "ImagePNG";
break;
case "gif":
$function_image_create = "ImageCreateFromGif";
$function_image_new = "ImageGIF";
break;
default:
$function_image_create = "ImageCreateFromJpeg";
$function_image_new = "ImageJpeg";
break;
}
header("Content-type: image/".$type);
resizeImage($_GET['file'], $_GET['w'], $_GET['h']);
}
else
{
echo "Bitte alle Daten eingeben!";
}
function resizeImage($file, $maxw, $maxh) {
global $function_image_create;
global $function_image_new;
$imagesize = getimagesize($file);
$imgw = $imagesize[0];
$imgh = $imagesize[1];
$ratiow = $maxw / $imgw;
$ratioh = $maxh / $imgh;
if($ratiow < $ratioh)
{
$newh = $imgh * $ratiow;
$neww = $maxw;
}
elseif($ratioh < $ratiow)
{
$neww = $imgw * $ratioh;
$newh = $maxh;
}
elseif($ratiow == $ratioh)
{
$neww = $maxw;
$newh = $maxh;
}
$thumb = imagecreatetruecolor($neww, $newh);
$source = $function_image_create($file);
imagecopyresized($thumb, $source, 0, 0, 0, 0, $neww, $newh, $imgw, $imgh);
return $function_image_new($thumb);
}
?>
Für Tipps und Änderungsvorschläge bin ich jederzeit offen. 
Geändert von Jakob (02.06.2005 um 14:45 Uhr).
|
|
|
24.05.2005, 11:28
|
#2
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
Herzlichen Dank.
Es wäre aber schöner, wenn Du das Script in einer CODE-Box platzieren würdest, da der Link auf direktem Weg nicht erreichbar ist, und so Dein Script auch dauerhaft hier einsehbar wäre 
|
|
|
24.05.2005, 11:53
|
#3
|
|
Guest
Registriert seit: Mar 2004
Ort: Süddeutschland
|
Schon erledigt.  Und danke für den Hinweis.
|
|
|
24.05.2005, 12:10
|
#4
|
|
TP-Veteran
Registriert seit: Feb 2002
|
Danke 
__________________
class GetProfileCustomerEntityReceiverInformationReceiverAndProgrammingInforma...{
public function __construct(){ if(!$this) die(' '); } }
http://www.thedailywtf.com/
|
|
|
01.06.2005, 15:35
|
#5
|
|
Guest
Registriert seit: Mar 2004
Ort: Süddeutschland
|
Jetzt hab' ich ein Problem mit meinem eigenen Script. 
Die PNG Unterstützung ist aktiv aber ich bekomm' keine PNG-Bilder verkleinert.
Der Fehler liegt sicher im Script da die Grafikfunktionen einwandfrei mit PNG funktionieren.
|
|
|
01.06.2005, 21:10
|
#6
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
Schreibfehler: $function_image_create = "ImageCreateFromPng";
|
|
|
02.06.2005, 14:46
|
#7
|
|
Guest
Registriert seit: Mar 2004
Ort: Süddeutschland
|
 (Ich hätt' das besser prüfen sollen  )
Danke.
Ich hab's oben schon geändert.
|
|
|
26.11.2006, 23:32
|
#8
|
|
TP-Newbie
Registriert seit: Nov 2006
|
hi, erstmal: super Script!
und auf das Lob folgt gleich ne Frage 
gibts ne Möglichkeit dass das ganze auch funktioniert wenn für $_GET['file'] statt nem relativem pfad ne url (zB: http://xyz.com/xyz.jpg) eingegeben wird?
im moment verhält sich das script wie gleich wie wenn man nen relativen pfad angibt der nicht existiert (er gibt den textlink aus)
pS: bevor Fragen nach dem Sinn auftauchen: der Sinn ist das die Bilder auf nem anderen Server geladen werden und es dort keine Möglichkeit gibt irgendwelche Scripte oder so auszuführen..
|
|
|
26.11.2006, 23:45
|
#9
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Wenn du das Script so nutzen willst, dauert es 3 Tage und der Server ist gehackt.
Wenn man aber mit diesem offenen Sicherheitsloch leben will, geht es schon.
Dazu muss der Server dann aber auch entsprechend konfiguriert sein:
http://www.dynamicwebpages.de/php/ref.filesystem.php (allow_url_fopen)
Aber dann doch lieber den nicht scriptfähigen Hosting-Vertrag updaten, kostet heute ja nun wirklich nichts mehr.
|
|
|
27.11.2006, 08:49
|
#10
|
|
TP-Newbie
Registriert seit: Nov 2006
|
oh, ok hab gehofft man braucht nur ne leichte Befehlsänderung oder so...
danke für dich schnelle Antwort 
-
hab vorhin mal paar Bilder damit getestet und mir ist aufgefallen das Bilder mit transparentem Hintergrund automatisch schwarz als Hintergrundfarbe bekommen
hab nun auch schon was gefunden um die Hintergrundfarbe beliebig zu ändern.. allerdings noch nichts um den Hintergrund wirklich transparent zu machen
weiß vllt von euch einer wie / ob das möglich ist?
PHP-Code:
<?php
if(!empty($_GET['file']) && !empty($_GET['w']) && !empty($_GET['h']))
{
if(preg_match("/.(jpg|jpeg)$/i", $_GET['file'], $regs)) $type = $regs[1];
if(preg_match("/.(png)$/i", $_GET['file'], $regs)) $type = $regs[1];
if(preg_match("/.(gif)$/i", $_GET['file'], $regs)) $type = $regs[1];
switch($type)
{
case "png":
$function_image_create = "ImageCreateFromPng";
$function_image_new = "ImagePNG";
break;
case "gif":
$function_image_create = "ImageCreateFromGif";
$function_image_new = "ImageGIF";
break;
default:
$function_image_create = "ImageCreateFromJpeg";
$function_image_new = "ImageJpeg";
break;
}
header("Content-type: image/".$type);
resizeImage($_GET['file'], $_GET['w'], $_GET['h']);
}
else
{
echo "Bitte alle Daten eingeben!";
}
function resizeImage($file, $maxw, $maxh) {
global $function_image_create;
global $function_image_new;
$imagesize = getimagesize($file);
$imgw = $imagesize[0];
$imgh = $imagesize[1];
$ratiow = $maxw / $imgw;
$ratioh = $maxh / $imgh;
if($ratiow < $ratioh)
{
$newh = $imgh * $ratiow;
$neww = $maxw;
}
elseif($ratioh < $ratiow)
{
$neww = $imgw * $ratioh;
$newh = $maxh;
}
elseif($ratiow == $ratioh)
{
$neww = $maxw;
$newh = $maxh;
}
$thumb = imagecreatetruecolor($neww, $newh);
$source = $function_image_create($file);
$bg = imagecolorallocate( $thumb, 255, 255, 255 );
imagefilledrectangle( $thumb, 0, 0, $neww, $newh, $bg );
imagecopyresized($thumb, $source, 0, 0, 0, 0, $neww, $newh, $imgw, $imgh);
return $function_image_new($thumb);
}
?>
schon mal im Voraus danke =)
Geändert von spy (27.11.2006 um 12:38 Uhr).
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| 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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 15:30 Uhr.
|
 |