HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Futási időben generált kép küldése web lapra


Példaprogram letöltése

9952 bájt

Sok esetben nem felelnek meg olyan képek webes alkalmazások fejlesztésénél, melyek statikusak, tartalmuk a kép elkészítése óta nem változik. Gondoljunk csak a reklám banner-ekre, vagy web lapon megjelenő grafikonokra. Ezek mind olyan képek, melyeknek tartalma állandóan változik, így célszerű programból elkészíteni azokat, hiszen akkor tartalmuk állandóan változhat az igényeknek megfelelően.

A megoldás ez esetben egy olyan ASP.NET-es alkalmazás, mely közvetlenül egy képet szolgáltat és nem egy web oldalt. Ezt az alkalmazást később felhasználhatjuk tetszőleges HTML oldalakon, vagy más programokban is a következő módon: a html kódba amikor képet illesztünk, ott a kép forrásaként nem egy kép állományt adunk meg, hanem azt az alkalmazásunkat, mely a képet szolgáltatja.
<img src="http://localhost/RuntimePic/WebForm1.aspx">
A mellékelt _teszt.htm állományban erre látható példa.
Nézzük most miként is készül a képet szolgáltató alkalmazásunk.
Az biztos, hogy képre szükségünk lesz. Ezt előállíthatjuk úgy is, hogy betöltünk egy már meglévő képet és arra rárajzoljuk a még szükséges tartalmat, de azt is megtehetjük, hogy a teljes képet futási időben állítjuk elő. Ehhez biztos, hogy szükségünk lesz egy Bitmap osztályra. Ezt felhasználva létrehozunk egy Graphics osztályt a rajzolás elvégzéséhez.
    private void Page_Load(object sender, System.EventArgs e)
    {
      Rectangle r = new Rectangle(0, 0, 486, 60);
      Bitmap bitmap = new Bitmap(r.Width, r.Height);
      Graphics g = Graphics.FromImage(bitmap);
Ettől kezdve tetszőleges grafikát készíthetünk a Bitmap-re.
      g.FillRectangle(new SolidBrush(Color.White), r);
      g.DrawString("S o f t w a r e   O n l i n e", new Font("Verdana", 20, FontStyle.Bold), new SolidBrush(Color.Black), 50, 17, StringFormat.GenericDefault);
      ...
A grafika elkészülte után át kell állítanunk a válasz formátumot képre. Ehhez a Response osztály ContentType property-be az image/gif sztringet kell írnunk. Ebből fogja tudni a válaszunkat fogadó alkalmazás, hogy a válasz tartalma egy GIF típusú kép lesz.
Mivel most képet adunk vissza, így a Bitmap tartalmát a Response osztály OutputStream folyamába kell mentenünk a Save függvény segítségével.
      Response.ContentType = "image/gif";
      bitmap.Save(Response.OutputStream, ImageFormat.Gif);
    }
Képet küldhetnénk JPG formátumba is, ekkor ContentType az image/jpeg értéket kell hogy kapja, valamint a mentéskor az ImageFormat-nál is a Jpeg értéket kell választanunk.

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2002 évkönyv 240. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |