hallo andreas!

ich skaliere mir die bilder innerhalb einer galerie (datalist) immer so:

public void file_Item_Bound(Object sender, DataListItemEventArgs e)
{
string file = e.Item.DataItem.ToString();
HtmlImage foto = (HtmlImage) e.Item.FindControl("foto");
foto.Src = "~/" + FormatSrc(file); // hier wird der pfad richtiggestellt
Bitmap b = new Bitmap(file);
if (b.Size.Width >= b.Size.Height)
   {
        if (b.Size.Width >= 451)
          {
          foto.Width = 450;
          foto.Height = (int) (((float) 450) / b.Size.Width * b.Size.Height);
          }
          else
          {
          foto.Width = b.Size.Width;
          foto.Height = b.Size.Height;
          }
        }
else
   {
        if (b.Size.Height >= 451)
          {
          foto.Height = 450;
          foto.Width = (int) (((float) 450) / b.Size.Height * b.Size.Width);
          }
          else
          {
          foto.Width = b.Size.Width;
          foto.Height = b.Size.Height;
          }
        }
b.Dispose();
}

du m�sstest das jetzt auf deinen fall umschreiben, sollte aber kein problem sein. der weg ist derselbe...

lg o



From: "Pessner, Andreas" <[EMAIL PROTECTED]>
Reply-To: [EMAIL PROTECTED]
To: <[EMAIL PROTECTED]>
Subject: [Asp.net] Bilder skalieren
Date: Thu, 15 Jul 2004 09:30:58 +0200

Ich suche nach einer M�glichkeit um Bilder zu skalieren.

Das ganze ist so gedacht - das ein Bild hochgeladen wird - und dazu kann eine Breite und H�he angegeben werden. Dann soll das Bild auf dem Server in das neue Format gebracht werden und abgespeichert werden.

Quasi so: Bild mit 1024*768 wird hochgeladen. Als neue Gr��e wird 640*480 �bergeben - und dann soll der Server das Bild mit 640*480 neu erstellen - und abspeichern.

Wie das f�r Thumbnails geht ist mir klar - aber da leidet die Qualit�t leider betr�chtlich wenn es gr��er als 300*300 Pixel sein soll! (�ber Bitmap. GetThumbnailImage)

(Das steht dazu in der Hilfe: GetThumbnailImage funktioniert gut, wenn die angeforderte Miniaturansicht eine Gr��e von ca. 120 x 120 hat. Eine Anforderung einer gro�en Miniaturansicht (z. B. 300 x 300) eines Image-Objekts mit einer eingebetteten Miniaturansicht kann zu einem deutlichen Qualit�tsverlust bei der Miniaturansicht f�hren. Es kann ggf. ratsam sein, das Hauptbild anstelle der eingebetteten Miniaturansicht zu skalieren, indem Sie DrawImage aufrufen.)

Dort wird auf DrawImage aus der Graphics Klasse verwiesen - aber irgendwie bekomme ich das nicht hin - bzw. mir fehlt dazu der richtige Ansatz!

Hat dazu vielleicht jemand einen Hinweis wie so was richtig geht?

So habe ich es versucht:

Bitmap myBM = aus Datei geladen
Systems.Drawing.Graphics G = Systems.Drawing.Graphics.FromImage(myBM);

G.DrawImage(myImg, 0, 0, 640, 480);
myBM.Save(...);

Aber irgendwie �ndert der das nicht - oder speichert zumindest nicht die �nderungen in die Datei rein.

Vorschl�ge?

Mit freundlichen Gr��en
Andreas

_______________________________________________
Asp.net Mailingliste, Postings senden an:
[EMAIL PROTECTED]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net

_________________________________________________________________
Hotmails und Messenger-Kommunikation am Handy? F�r MSN Mobile kein Problem! http://www.msn.at/msnmobile/


_______________________________________________
Asp.net Mailingliste, Postings senden an:
[EMAIL PROTECTED]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net

Antwort per Email an