AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Prism Ein dynamisches Image generieren? ASP.NET
Thema durchsuchen
Ansicht
Themen-Optionen

Ein dynamisches Image generieren? ASP.NET

Ein Thema von Mavarik · begonnen am 12. Aug 2008 · letzter Beitrag vom 13. Aug 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Mavarik
Mavarik

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

Ein dynamisches Image generieren? ASP.NET

  Alt 12. Aug 2008, 21:08
Hallo Zusammen!

Irgendwie habe ich gerade mal wieder eine Loch im Hirn... <- Vielleicht davon...

Ich möchte ein Image

<asp:Image id="Image1" runat="server"></asp:Image>

Dynimisch mit eine Grafik belegen... (Also nicht mit einer statischen URL eines vordefinierten Bildes) sondern...

BMP.LoadFromFile(Image1.Page.MapPath('~')+'\Meinbi ld.bmp');

// Mach was mit dem Bild und dann dem Image1 "zuweisen"

Aber Wie?

Grüsse Frank
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Ein dynamisches Image generieren? ASP.NET

  Alt 12. Aug 2008, 21:31
Bitte?

Wenn es dir darum geht, ein Image dynamisch zu erzeugen und damit "wie statisch" anzeigen zu können, hier ein Schnipsel aus einem aktuellen Projekt:
Code:
int color;
        if (int.TryParse(Request["c"], System.Globalization.NumberStyles.HexNumber, null, out color)) {
            Color fill = Color.FromArgb(color);
            Response.Clear();
            Response.AppendHeader("content-type", "image/png");
            MemoryStream ms = new MemoryStream();
            using (Bitmap result = new Bitmap(1, 1)) {
                using (Graphics g = Graphics.FromImage(result)) {
                    g.Clear(fill);
                }
                result.Save(ms, ImageFormat.Png);
            }
            byte[] b = ms.ToArray();
            Response.OutputStream.Write(b, 0, b.Length);
            ms.Dispose();
            Response.End();
        }
Das musst du nur in eine eigene Seite packen und diese Seite (mit entsprechenden Parametern) als Image-URL benutzen...
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

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

Re: Ein dynamisches Image generieren? ASP.NET

  Alt 13. Aug 2008, 07:29
Hi!

ne das meine ich nicht, sondern.
Delphi-Quellcode:

Procedure T...Page_Load ...;
begin
  if IsPostback
    then begin
           // Was auch immer
         end
    else begin
           Label1.Visible := false;
           Image1.Wasauchimmer := Func_IchBinneBitmap; //<- Sowas
         end;
end;
Grüsse Frank
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.609 Beiträge
 
#4

Re: Ein dynamisches Image generieren? ASP.NET

  Alt 13. Aug 2008, 07:36
Du musst dem Image zwangsläufig eine URL zu einem Bild mitgeben:
Code:
Image1.ImageUrl = "Pfad zu Deinem dynamisch generierten / dynamisch zu generierendem Bild";
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  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: Ein dynamisches Image generieren? ASP.NET

  Alt 13. Aug 2008, 08:19
Zitat von Phoenix:
Du musst dem Image zwangsläufig eine URL zu einem Bild mitgeben:
Code:
Image1.ImageUrl = "Pfad zu Deinem dynamisch generierten / dynamisch zu generierendem Bild";
Ich hatte gehofft, dass ich mir eine Http handler dafür sparen kann und es einen einfacheren weg gibt...

Vielleicht mit RenderBeginTag usw.?

Frank
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.609 Beiträge
 
#6

Re: Ein dynamisches Image generieren? ASP.NET

  Alt 13. Aug 2008, 08:27
Ich glaube, wir reden gerade furchtbar aneinender vorbei.

Erstml kurz den Ablauf angucken, wie ein Browser an das Bild kommt:
Er bekommt eine html-Seite. Irgendwo da drin steht eine URL zu einem Bild.
Der Browser ruft das Bild von eben dieser URL mit einem neuen Request ab (sofern diese URL nicht schonmal abgerufen wurde und somit gecached ist).
Der Browser zeigt die Seite mit Bild an.

Wenn Du nun dynamisch Bilder generieren / austauschen willst, dann bleibt Dir nichts anderes übrig als eine Url (also z.B. via System.Web.UI.WebControls.Image.ImageUrl) in die Seite zu schreiben. Du kannst das daraus resultierende HTML <image url="xyz.gif" alt="Alternativtext" /> aber natürlich auch gerne ohne das Image-Control sondern von Hand erzeugen, wenn Du spass daran hast extra Code zu schreiben.

Die Frage ist doch eher: Welches Bild musst Du anzeigen? Also welche URL schreibst Du da rein?
Du hast da zwei Möglichkeiten:
1.) Du generierst das Bild zur Laufzeit der ASP.NET-Seite und legst es in ein Verzeichnis ab. Den Dateinamen gibst Du zurück und schreibst ihn als Ziel-Url ins html.

2.) Du schreibst tatsächlich einen http-Handler, der das Bild generiert. Du gibst also eine URL auf diese Handlerdatei in die Seite, die z.B. via Parameter in der Adresse dem Handler sagt, was für ein Bild dieser generieren und zurückliefern soll.

Also wo klemmt es bei Dir nun eigentlich?
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  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: Ein dynamisches Image generieren? ASP.NET

  Alt 13. Aug 2008, 09:00
Zitat von Phoenix:
Ich glaube, wir reden gerade furchtbar aneinender vorbei.

Also wo klemmt es bei Dir nun eigentlich?
Also das war ja nicht die Frage... Die zwei Wege Du Du beschreibst sind ja trivial...
(Bin nicht zu blöd nur URL anzugeben.)

Es ging mir darum ein - wie auch immer positioniertes ASP Image runat="server" an der entsprechenden Stelle zu rendern.
also dem Responsestream (und zwar ohne clrear) im "richtigen Moment" den JPG Stream zu übergeben...

Grüsse Frank
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.609 Beiträge
 
#8

Re: Ein dynamisches Image generieren? ASP.NET

  Alt 13. Aug 2008, 09:05
Äh...

Deswegen hab ich das ja oben erklärt: Das was Du willst kann gar nicht gehen.

Du kannst das JPG nicht in den Response-Stream der Seite (also da, wo das Image-Control sitzt), einfügen. Damit kommt der Browser zwangsläufig nicht klar, weil er nur HTML erwartet. Du kannst keine Binärdaten in eine Webseite 'einbetten'. Du kannst nur eine URL in die Seite schreiben und der Browser wird dann einen neuen Request für das Bild starten.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  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: Ein dynamisches Image generieren? ASP.NET

  Alt 13. Aug 2008, 11:47
Zitat von Phoenix:
Äh...

Du kannst nur eine URL in die Seite schreiben und der Browser wird dann einen neuen Request für das Bild starten.
mal wieder eine Loch im Hirn... sag ich doch... gestern war es zu spät und heute hatte ich noch keinen Kaffee...

Danke jetzt bin ich wieder "eingenordet"

Grüsse Frank
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#10

Re: Ein dynamisches Image generieren? ASP.NET

  Alt 13. Aug 2008, 11:59
Zitat von Phoenix:
Du kannst das JPG nicht in den Response-Stream der Seite (also da, wo das Image-Control sitzt), einfügen. Damit kommt der Browser zwangsläufig nicht klar, weil er nur HTML erwartet. Du kannst keine Binärdaten in eine Webseite 'einbetten'. Du kannst nur eine URL in die Seite schreiben und der Browser wird dann einen neuen Request für das Bild starten.
Es geht schon - wenn man nicht gerade IE 6 (glaube ich, vll. auch 5) benutzt

Siehe hier: http://aktuell.de.selfhtml.org/artik...ages/index.htm

Sieht dann so aus:
Code:
[img]data:image/gif;base64,R0lGODlhmwDFAPcAAAAAAAE---eine Menge base64encodedes Zeug---wcHBh8f[/img]
Damit sollte der Browser keinen zusätzlichen Request schicken
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:52 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