AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Online Avatar Resize
Thema durchsuchen
Ansicht
Themen-Optionen

Online Avatar Resize

Ein Thema von ArmyMan · begonnen am 28. Mär 2006 · letzter Beitrag vom 13. Apr 2006
Antwort Antwort
Benutzerbild von ArmyMan
ArmyMan

Registriert seit: 25. Mai 2004
Ort: Wil Sg
193 Beiträge
 
#1

Online Avatar Resize

  Alt 28. Mär 2006, 08:26
Hallo Leute

Habe grad eine Page gemacht mit Benutzerprofilen. Jeder Benutzer kann sein persönliches Avatar raufladen, wie in jedem Forum z.B.
Falls nun ein Benutzer ein Bild hochladen will das den Dimensionen nicht entspricht, passt ein von mir gemachtes PHP Script die Grösse des Bildes an.
Nun funktioniert das bei .jpg, .gif, .png problemlos. Bei .bmp und animierten gifs geht das nicht.
Kann ich irgendwie mit Delphi eine Webanwendung machen das diese Bilder anpasst?
Falls ja, wäre ich froh wenn mir jemand weiterhelfen könnte.

Thx & Greetz

Nachtrag: Falls das mit Delphi nicht möglich ist, würde er gerne wissen mit welcher Sprache das leicht zu realisieren geht.

[edit=sakura] Nachtrag (Wortlaut leider verloren ) in den ersten Post geschoben. Neuer Post bitte 24h warten. Mfg, sakura[/edit]
ArmyMan
Reden ist Schweigen, Silber ist Gold!
Der Soldat friert nicht. Er zittert nur vor Wut, weil es so kalt ist.
  Mit Zitat antworten Zitat
Benutzerbild von ArmyMan
ArmyMan

Registriert seit: 25. Mai 2004
Ort: Wil Sg
193 Beiträge
 
#2

Re: Online Avatar Resize

  Alt 13. Apr 2006, 08:14
/ push
ArmyMan
Reden ist Schweigen, Silber ist Gold!
Der Soldat friert nicht. Er zittert nur vor Wut, weil es so kalt ist.
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

Re: Online Avatar Resize

  Alt 13. Apr 2006, 08:27
Versuchs mal mit getimagesize();

Hier ein Beispiel aus SelfPHP 3.0
Code:
<?PHP
$bild = "php3_4.gif";
$info = getimagesize($bild);
echo "Bildbreite: " . $info[0];
echo "
";
echo "Bildhöhe: " . $info[1];
echo "
";
echo "Grafik-Typ: " . $info[2];
echo "
";
echo "HTML-Zeichenkette: " . $info[3];
?>
MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von ArmyMan
ArmyMan

Registriert seit: 25. Mai 2004
Ort: Wil Sg
193 Beiträge
 
#4

Re: Online Avatar Resize

  Alt 13. Apr 2006, 08:31
Hi freak4fun

Die grösse rauszufinden ist kein problem!
Das problem besteht darin, bmp und animierte gifs automatisch zu verkleinern. (falls bestimmte grösse übersteigt wird)
Leider kann PHP selbst bei diesen formaten die grösse nicht anpassen.

Greetz
ArmyMan
Reden ist Schweigen, Silber ist Gold!
Der Soldat friert nicht. Er zittert nur vor Wut, weil es so kalt ist.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.127 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Online Avatar Resize

  Alt 13. Apr 2006, 08:38
Warum geht bmp nicht...
Das ist doch viel einfacher als GIF und JPG???

Stichwort "StretchDraw"

Oder auch die komplizierte Version z.B. für einen beliebigen Canvas wie Printer...

Delphi-Quellcode:
            Bits := MyImage.Picture.Bitmap.Handle;
            GetDIBSizes(Bits, InfoSize, ImageSize);
            Info := AllocMem(InfoSize);
            try
              Image := AllocMem(ImageSize);
              try
                GetDIB(Bits, 0, Info^, Image^);
                with Info^.bmiHeader do
                  begin
                    DIBWidth := biWidth;
                    DIBHeight := biHeight;
                  end;
                  StretchDIBits(Printer.Canvas.Handle,
                                Screen2PrinterX(ChildControl.Left+Left)-Rand_Links, // rechnet z.B. 96 Screen DPI auf 300 Printer DPI um
                                Screen2Printery(Top)-Rand_Oben,
                                Screen2PrinterX(ChildControl.width),
                                Screen2PrinterY(ChildControl.height),
                                0, 0, DIBWidth, DIBHeight, Image, Info^, DIB_RGB_COLORS, SRCCOPY);
              finally
                FreeMem(Image, ImageSize);
              end;
            finally
              FreeMem(Info, InfoSize);
            end;
Wie gesagt... Kanonen auf Spatzen


Und Animierte Gifs...hmm müsste man die einzelnen Gifs auf Größe anpassen und dann wieder zusammen wegschreiben...

Habe ich auch mal geschrieben, finde leider die Sourcen gerade nicht... Melde mich wenn ich Sie gefunden habe...

Frank
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

Re: Online Avatar Resize

  Alt 13. Apr 2006, 08:38
Zitat von ArmyMan:
Die grösse rauszufinden ist kein problem!
Entschuldigung, hab deinen ersten Post nur teilweise gelesen.

Würde es auch gehen das Bild durch Abschneiden des linken und unteren Randes zu verkleinern? Wenn ich so nachdenke, kenne ich kein Forum oder Ähnliches, das sowas macht. Wenn du eins kennst, kannst du ja da nachfragen. Ansonsten sollten sich deine Benutzer selbst darum kümmern, dass ihre Bilder die richtige Größe haben.

MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.127 Beiträge
 
Delphi 10.3 Rio
 
#7

Re: Online Avatar Resize

  Alt 13. Apr 2006, 08:39
Zitat von ArmyMan:
Hi freak4fun

Die grösse rauszufinden ist kein problem!
Das problem besteht darin, bmp und animierte gifs automatisch zu verkleinern. (falls bestimmte grösse übersteigt wird)
Leider kann PHP selbst bei diesen formaten die grösse nicht anpassen.

Greetz
Warum läßt Du das nicht den Browser machen?

Frank
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

Re: Online Avatar Resize

  Alt 13. Apr 2006, 08:49
Nächste Versuch: imagecopyresized();

Zitat von SelfPHP 3.0:
<?PHP
$image = imagecreatefromgif("imagearc.gif");
$image1 = imagecreate(300,150);
$farbe_body=imagecolorallocate($image1,222,222,222 );
imagecopyresized($image1, $image, 30,25, 50,60,150,30, 91,26);
imagegif($image1);
?>
Code:
<?
$image = imagecreatefromgif("banner.gif");
$image1 = imagecreate(936, 120);
imagecopyresized($image1, $image, 0, 0, 0, 0, 936, 120, 468, 60);
imagegif($image1);
?>
Hier hab ich mal die Bannergröße verdoppelt.

Mavarik hat natürlich auch recht.
Code:
[img]banner.gif[/img]
MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.127 Beiträge
 
Delphi 10.3 Rio
 
#9

Re: Online Avatar Resize

  Alt 13. Apr 2006, 09:00
Zitat von freak4fun:
Mavarik hat natürlich auch recht.
Code:
[img]banner.gif[/img]
MfG
freak
Danke... Ich würde hier klar unterscheiden was sich lohnt und was nicht...

Wenn ein User es cool findet ein Bild von der 12 Mega-Pixel Cam upzuloaden, sollte man dies
direkt im Upload oder danach verwerfen und eine Meldung bringen...

Aber wenn es um 80x100 auf 160x200 oder umgekehrt geht - Togal...

Frank

PS.: Warum soll man es den Browser machen lassen... Es gibt durchaus JPG Bilder die zwar 100%ig richtig
dargestellt werden, jedoch z.B. die Delphi JPEG Unit einen JPEG-Fehler meldet...
Klar mit try abgefangen, aber dann würde man diese Bilder immer verwerfen...
  Mit Zitat antworten Zitat
Benutzerbild von ArmyMan
ArmyMan

Registriert seit: 25. Mai 2004
Ort: Wil Sg
193 Beiträge
 
#10

Re: Online Avatar Resize

  Alt 13. Apr 2006, 09:06
Ok. Ich lass es mit dem <img ....> tag.
Stimmt, dieser aufwand lohnt sich wirklich nicht.

Thx & Greetz
ArmyMan
Reden ist Schweigen, Silber ist Gold!
Der Soldat friert nicht. Er zittert nur vor Wut, weil es so kalt ist.
  Mit Zitat antworten Zitat
Antwort Antwort


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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz