\\ Pensando.it : Cerca
Di seguito i pensieri e le fotografie che contengono le parole richieste.

Ricerca pensieri per bitmap

Di etrusco (del 11/04/2008 @ 16:58:54 in flickr, linkato 1279 volte)

Visto il discreto successo di utenti flickr in relazione al tool classifica flickr, mi sono cimentato in una nuova funzionalità... il badge creator!

Cosa è il badge creator?

E' una semplice (non molto) applicazione fatta in ASP.NET 2.0 che consente, dato un group_id flickr, di generare un badge ossia una immagine contenente le cinque immagini migliori nel mese corrente per il gruppo flickr in questione.

Ad esempio per il gruppo che io e Mago gestiamo (l'ho reso amministratore....hihihihi) nikon d40x italia il badge è il seguente:

Chi utilizza frequentemente Flickr saprà che di badge di questo tipo ce ne sono moltissimi e mostrano tutti informazioni in real-time sul gruppo, ad esempio interessanti ed usatissimi sono i badge di flickriver e bighugelabs.

Vediamo qualche riga di codice dell'applicazione .NET

In primis, per lavorare con le immagini, è necessario utilizzare i seguenti namespace:

using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;

L'idea è la seguente, invocare la flickr API per ottenere la classifica delle immagini sotto forma di stream, caricare tale stream in oggetti di tipo bitmap, copiare ed incollare tale oggetti in modo tale da ottenere una immagine definitiva come quella mostrata sopra.

La parte a mio avviso più interessante è quella relativa al load delle immagini, ho utilizzato il seguente metodo:

public bitmap LoadPicture(string urlImage)
{
HttpWebRequest wreq;
HttpWebResponse wresp = null;

// Definizione dello stream per carpire l'immagine
System.IO.Stream streamImage = null;

// definizione di un bitmap che costituisce il valore di ritorno
bitmap bmpImage = null;
// contatto con il web
wreq = (HttpWebRequest)WebRequest.Create(urlImage);
// impostiamo la proprietà necessaria per la creazione dello stream
wreq.AllowWriteStreamBuffering = true;
// richiesta dell'immagine
wresp = (HttpWebResponse)wreq.GetResponse();

// in caso di risposta positiva
if ((streamImage = wresp.GetResponseStream()) != null)
bmpImage = (bitmap)System.Drawing.Image.FromStream(streamImage);
if (streamImage != null)
streamImage.Close();
if (wresp != null)
wresp.Close();
return (bmpImage);
}

In definitiva dato un URL di una immagine Flickr (che si ottiene invocando le API) la prima cosa da fare è convertire tale stream in oggetto bitmap.

Una volta effettuata tale conversione, per creare l'immagine di cui sopra è necessario fare le seguenti operazioni:

caricare la bitmap in un oggetto di tipo Image:

System.Drawing.Image oImg = (System.Drawing.Image)LoadPicture(urlPhoto);

Aver preventivamente definito un oggetto di tipo bitmap che rappresenta la nostra bitmap di lavoro e un oggetto di tipo Graphics con il quale effettuare i vari copia, incolla etc...:

bitmap oBmp = new bitmap(400, 140, PixelFormat.Format24bppRgb);
Graphics oGrp = Graphics.FromImage(oBmp);

Effettuare operazioni di pulizia e riempimento dell'immagine:

oGrp.SmoothingMode = SmoothingMode.AntiAlias;
oGrp.TextRenderingHint = TextRenderingHint.AntiAlias;
SolidBrush oBrush = new SolidBrush(Color.White);
oGrp.FillRectangle(oBrush, 0, 0, 400, 140);

oGrp.Clear(Color.White);

Disegnare l'immagine ottenuta dal Web:

oGrp.DrawImage(oImg, 10, 30, 75, 75);

Scrivere del testo:

PointF oPoint1 = new PointF(10, 105);
oGrp.DrawString("#1", oFont, oBrushText, oPoint1);

Ed infine salvare l'immagine in formato .Bmp

oBmp.Save(Server.MapPath(@"..\public\flickr\badge\" + group_id + ".bmp"), System.Drawing.Imaging.ImageFormat.Bmp);

Questa parte mi ha fatto penare molto in quanto avrei voluto utilizzare il seguente metodo:

Response.ContentType = "image/jpeg";
oBmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);

Con il quale si ottiene direttamente una immagine come Output dello stream ma la qualità, rispetto al salvarla in Bmp su disco, era decisamente inferiore.

 

Ricerca fotografie per bitmap

Nessuna fotografia trovata.

Top 5 su pensando.it

I più letti di sempre
 Rinegoziare un mutuo, ..
 Lost quinta e sesta se..
 Nietzsche e l'elogio d..
 Lost quarta serie, in ..
 E' nato il gruppo Flic..
I più letti del mese
 Rinegoziare un mutuo, ..
 Il crollo della macchi..
 Quanto sono utile? Qua..
 Lost Quarta serie, Jer..
 anoressia e bulimia.....
I più commentati
 plugin tagCloud 2.2.0 ..
 Rinegoziare un mutuo, ..
 anoressia e bulimia.....
 4geek Medley HMR-500 -..
 Pensando.it e lo spam ..
I più votati
 Harry Potter e il prin..
 Lost quinta e sesta se..
 plugin vota articolo 1..
 Rinegoziare un mutuo, ..
 Lost quarta serie, in ..

TagClouds

Un articolo a caso

stasera a cena dal mago
...letto 560 volte

Articoli Presenti

Ultimi commenti
  vorrei sapere quando...
02/09/2010 @ 10:17:18
Di sonia
  I would like to prop...
27/08/2010 @ 18:43:14
Di Anonimo
  ...modifica nel suo ...
19/08/2010 @ 19:08:00
Di paolo manzelli
  Cari amici ,quando i...
19/08/2010 @ 19:02:38
Di paolo manzelli
  Cars and houses are ...
09/08/2010 @ 20:04:01
Di Anonimo


Chi Sono

chi sono
Etrusco
La saggezza non è un prodotto dell'istruzione ma del tentativo di acquisirla

Albert Einstein

Cerca

Feed Rss


Le mie foto su Flickr

Le mie Foto
www.flickr.com

Album Fotografici

Trovati 6 Album

Sondaggi

Ti piace la nuova grafica di pensando.it?

 Eccezionale, complimenti!
 Si, molto carina e ben curata.
 Non molto, potevi fare di meglio.
 Oddio...ma chi ha avuto questa terribile idea?
 non so, non rispondo.

Utenti on-line

Ci sono 14 persone collegate

Stuff






PageRank Checking Icon

BlogRoll


Informazioni


11/09/2010 @ 4.04.18
script eseguito in 594 ms