Lieber Besucher, herzlich willkommen bei: OS X Entwicklerforum.
Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert.
Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können.
Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang.
Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.
via PHP Thumbnail eines Images bekommen ?
Hi,
ich muss in meiner App Bilder downloaden die auf einem server als Files vorliegen. Also z.B
http://www.url.com/bilder/1.jpg
Leider sind diese Bilder teilweise riesig und deshalb würde ich sie gerne serverseitig vorher verkleinern bevor ich sie verschicke. Sprich ich rufe von meiner app aus dann eine Seite
http://www.url.com/getimage?imagename=1.jpg
auf. Dieses script soll dann das Image laden, skalieren und mir schicken. Irgendwie habe ich da aber gerade einen Knoten im Kopf. Ich kann das Bild in dem php script laden und skalieren. Soweit so gut. Muss ich es nun erst wieder speichern und dann via redirect an meine App senden oder geht das auch eleganter indem ich direkt das skalierte Bild schicke ohne es zu speichern ?
Das Bild wird nur einmal geladen und dann in meiner App lokal gecached. Ein Abspeichern des Thumbnails ist also nicht sinnvoll da es sonst nur den Server unnötig füllt.
Gruß
Claus
Pre-Kaffee-Posts sind mit Vorsicht zu geniessen
Danke
aber wie ich skalieren kann ist mir schon klar. Nur ist mir gerade nicht klar wie ich das skalierte Bild dann zu meiner App bekomme. Sprich das PHP Script soll sich für den Client ja so verhalten als würde es ein Image zurückliefen genau als wenn der Client direkt eine ImageURL angesprochen hätte.
Gruß
Claus
Pre-Kaffee-Posts sind mit Vorsicht zu geniessen
Daten basteln, Header auf Dateiformat setzen, Daten ausgeben.
Der Empfänger interpretiert das Ganze dann einfach als Bild und gut ist.
Viel mehr musst du da nicht tun.
Gibt es auch etliche Tutorials zu. Auf die Schnelle gefunden:
http://phplearn.mali.ch/tutorial/31/show/
Sinngemäß:
|
PHP-Quelltext
|
1
2
3
4
|
$img = imagecreatefromjpeg($unInjectedImageName.'.jpg');
// Anpassungen am Image
header("Content-type: image/jpeg");
ImageJpeg($img, "", 60);
|
As easy as winking.
Hilfreich? Dann freue ich mich über eine kleine Spende. :)
----
«Applejack» "Don't you use your fancy mathematics to muddle the issue!"
----
Ah sorry, hatte Dich falsch verstanden - dazu kannst Du mod_rewrite verwenden. Das "Mapping" der URL von
http://www.url.com/bilder/1.jpg auf
http://www.url.com/getimage?imagename=1.jpg erfolgt dann über einen Eintrag in der .htaccess
|
Quellcode
|
1
2
|
RewriteEngine on
RewriteRule ^bilder/([^./]+)$ /getimage.php?imagename=$1 [NC]
|
Viele Grüße,
Thomas
Du kannst auch einfach deiner PHP.ini erklären, dass sie im Verzeichnis für 'thumbs' einfach alle .jpg Dateien als .php parst.
Hilfreich? Dann freue ich mich über eine kleine Spende. :)
----
«Applejack» "Don't you use your fancy mathematics to muddle the issue!"
----
Ich habe es jetzt so gelöst
|
Quellcode
|
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
36
37
38
39
40
41
42
43
44
|
<?PHP
header('Content-Type: image/jpeg');
$imagename= $_GET['imagename'];
$device = $_GET['device'];
$width=480;
$height=320;
if(!isset($device) || strcmp($device,"iPhone")!=0)
{
$width=1024;
$height=768;
}
if(!isset($imagename) || strlen($imagename)==0)
{
$source = imagecreatefromgif("nopic.gif");
imagejpeg($source);
die();
}
list($oldwidth, $oldheight) = getimagesize($imagename);
// landscape
if($oldwidth>=$oldheight)
$height=($width*$oldheight)/$oldwidth;
else
$width=($height*$oldwidth)/$oldheight;
$ext = pathinfo($imagename, PATHINFO_EXTENSION);
if(strcasecmp($ext,"jpg")==0)
$source = imagecreatefromjpeg($imagename);
if(strcasecmp($ext,"gif")==0)
$source = imagecreatefromgif($imagename);
if(strcasecmp($ext,"png")==0)
$source = imagecreatefrompng($imagename);
$thumb = imagecreatetruecolor($width, $height);
imagecopyresized($thumb, $source, 0, 0, 0, 0, $width, $height, $oldwidth, $oldheight);
imagejpeg($thumb);
?>
|
Klappt super
Gruß
Claus
Pre-Kaffee-Posts sind mit Vorsicht zu geniessen