mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Di 23.04.2024 13:12 Benutzername: Passwort: Auto-Login

Thema: Perl-Bildupload (größe der Bilder) vom 26.05.2004


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Perl-Bildupload (größe der Bilder)
Autor Nachricht
fyll
Threadersteller

Dabei seit: 20.09.2003
Ort: Augsburg
Alter: 39
Geschlecht: Männlich
Verfasst Mi 26.05.2004 13:31
Titel

Perl-Bildupload (größe der Bilder)

Antworten mit Zitat Zum Seitenanfang

Hallo zusammen Grins

Ahhlso:
Ich bin gerade dabei, eine Datenbankgestützte Bildergalerie mit Upload-funktion zu basteln...
Wäre auch gaar kein prob, aaaber ich will die upgeloadeten Bilder praktisch doppelt speichern, einmal in normaler Größe und dann als Thumbnail also praktisch das gleiche, nur halt kleiner, für die Vorschau....

von GD bzw. Imagegick hab ich schonmal was gehört, aaaber ich brauch die ganze geschichte in Perl... hab kein PHP auf dem Server ...

das is hier mal mein CGI-Script, dass ich normalerweise immer verwende... wer ne Idee, wie ich das bearbeiten muss, um das gewnschte Ergebnis zu erzielen?
Code:

#!/usr/bin/perl

use strict;
use CGI::Carp qw(fatalsToBrowser);
use CGI; # Modul fuer CGI-Programme

my $cgi = new CGI; # neues Objekt erstellen

print $cgi->header(-type => 'text/html');

my $file = $cgi->param("userfile");
my $name = $cgi->param("name");

my $fname = $name;
open DAT,'>'.$fname or die 'Error processing file: ',$!;

binmode $name;
binmode DAT;

my $data;
while(read $file,$data,1024) {
  print DAT $data;
}
close DAT;



Dangöööö schonmal Grins
  View user's profile Private Nachricht senden
fyll
Threadersteller

Dabei seit: 20.09.2003
Ort: Augsburg
Alter: 39
Geschlecht: Männlich
Verfasst Do 27.05.2004 12:46
Titel

Antworten mit Zitat Zum Seitenanfang

Keiner hier irgendwie Ahnung von CGI ?? Menno!
*bäh*
  View user's profile Private Nachricht senden
Anzeige
Anzeige
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Do 27.05.2004 14:56
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
Keiner hier irgendwie Ahnung von CGI ?

CGI sagt gar nichts aus... Damit ist nur ein Interface gemeint. Das könnte im Prinzip jede Sprache sein. PHP läuft bei einigen Providern auch über's CGI.

Aber zu deiner Frage. Wirklich verstanden habe ich nicht, was Du jetzt wirklich möchtest. Was soll dein Script denn jetzt machen? Nur die Bilder hochladen oder dann auch resizen?
Wenn Du resizen wilst, dann brauchst Du die GD-Library auf dem Server (wie das mit ImageMagick ist, weiß ich nicht. Geht aber vermutlich auch.). Wenn die installiert ist, kannst Du damit deine Bilder resizen. Die GD kannst Du genauso mit Perl nutzen wie mit PHP.
Bei Interesse poste ich dir ein PHP-Script zum Resizen mit Hilfe der GD. Du könntest dir das dann auch Perl umschreiben. Das sollte nicht allzuschwer sein...
  View user's profile Private Nachricht senden
fyll
Threadersteller

Dabei seit: 20.09.2003
Ort: Augsburg
Alter: 39
Geschlecht: Männlich
Verfasst Do 27.05.2004 15:07
Titel

Antworten mit Zitat Zum Seitenanfang

Ja, halt wenn ein Bild hochgeladen wird einmal in Originalgröße abspeichern (geh ja schon) und dann nochmal resizieren (wie du es so schön nennst *bäh* ) und dann nochmal seperat speichern...

Ja, wäre nett, wenn du mir mal dein Script schickst...
hab zwar, wie gesagt, nciht die Möglichkeit PHP auf dem Server zu nutzen, noch irgendwas wir GD zu installieren
(muss mal schaun, ob ich _"IRGENDWIE"_ auf den root-folder komme *bäh*

wirklich fit bin ich auch nicht in Perl, sodass ich was umschreiben kann, aber irgendwas is mal besser als nix Grins
thx ^^

//edit: das ^^-Smiley sollte eigentlich ^ ^ sein... *zwinker*


Zuletzt bearbeitet von fyll am Do 27.05.2004 15:08, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Do 27.05.2004 15:28
Titel

Antworten mit Zitat Zum Seitenanfang

Also wenn auf deinem Server Perl installiert ist, dann ist es gar nicht mal so unwahrscheinlich, daß da auch die GD-Library drauf installiert ist. Und falls das nicht der Fall sein sollte, mußt Du mal bei deinem Provider nachfragen, ob er die installieren würde. Wenn Du einen anständigen Provider hast, dann wird das bestimmt recht schnell gemacht.

Du mußt dann das Perl-Modul GD.pm mit use GD; in dein Script einbinden. Die Funktionen müßten eigentlich mehr oder weniger identisch sein. Haben vermutlich auch die gleichen Namen. Allerdings werden sie wohl ein wenig anders angesprochen. Ich weiß aber nicht genau wie. Mit Perl arbeite ich zwar auch ab und zu, aber ich habe noch keine Graphikfunktionen benutzt...
Da mußte Du dann mal google befragen. Ansonsten hast Du hier ja den Weg und die Berechnungen, die Du anstellen mußt.

Code:

<?php

#####################################
# Resizing des hochgeladenen Bildes
# Thumbnails generieren
#
# rob
# Februar 2004
#
#####################################


$vorschauBreite = 100;

// Pfad- und Dateinamen zusammensetzen
$quellBild = $imageDir . "/" . $imageName . $ext;
$vorschauBild = $imageDir . "/" . "thumb_" . $imageName . ".png";

// Bildinfos einholen
$info = getimagesize( $quellBild );
$breite_alt = $info[0];
$hoehe_alt = $info[1];

// Groesse aendern und neues Bild erzeugen
$vorschauHoehe = ceil( $hoehe_alt * $vorschauBreite / $breite_alt );

switch ( $info[2] )
{
   case 1:
      $image_alt = imagecreatefromgif( $quellBild );
      break;
   case 2:
      $image_alt = imagecreatefromjpeg( $quellBild );
      break;
   case 3:
      $image_alt = imagecreatefrompng( $quellBild );
      break;
   default:
      break;
}

$image_neu = @imagecreatetruecolor( $vorschauBreite, $vorschauHoehe ) or die( "Fehler! Kann keinen neuen GD-Bild-Stream erzeugen." );
imagecopyresampled( $image_neu, $image_alt, 0, 0, 0, 0, $vorschauBreite, $vorschauHoehe, $breite_alt, $hoehe_alt );

// Bild auf die Platte schreiben und Speicher freigeben
imagepng( $image_neu, $vorschauBild );
imagedestroy( $image_neu );
imagedestroy( $image_alt );

?>

Also das Script ansich ist recht einfach und ja auch kommentiert... Die Variable $vorschauBreite gibt die Größe der Thumbnails in Pixeln an. Das müßtest Du anpassen, wenn Du nicht willst, daß all deine Bilder 100 Px breit werden.
$imageName und $imageDir kommen aus einem anderen Script (wo dieses hier eingebunden wird). Sollte aber klar sein, was in diesen Variablen stehen muß...
Im Endeffekt wird dann ein neuer Name generiert "thumb_OriginalBildName.png", dann das Bild resized und später wird's auf die Platte geschrieben.
  View user's profile Private Nachricht senden
fyll
Threadersteller

Dabei seit: 20.09.2003
Ort: Augsburg
Alter: 39
Geschlecht: Männlich
Verfasst Do 27.05.2004 15:33
Titel

Antworten mit Zitat Zum Seitenanfang

goil, thx Grins *Thumbs up!*

hab den auch gleich mal gefragt, ob er auch so gütig wäre, PHP mal eben zu installieren...
Also ich hoffs, ich kanns nächste Woche ausprobieren

thx
  View user's profile Private Nachricht senden
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Fr 28.05.2004 09:49
Titel

Antworten mit Zitat Zum Seitenanfang

Also wenn man für dich jetzt PHP installiert, dann brauchst Du vermutlich auch noch ein Dateiupload-Script in PHP..?
Kannst mir 'ne Mail schreiben, dann geb ich dir'n paar Scripte, die Du dir anpassen kannst.
  View user's profile Private Nachricht senden
 
Ähnliche Themen Lightbox und größe der Bilder
Bilder in voller größe erscheinen lassen.
Contentflow > Größe der Bilder besimmen und Link?
Mehrere Bilder in bestimmte Größe Umwandeln?
Bilder automatisch in gewünschter KB größe speichern
Bilder unterschiedlicher Größe mit XML in Flash laden
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.