\\ Pensando.it : Pensiero
Classifica Flickr, da oggi disponibile anche il badge creator
Di etrusco (del 11/04/2008 @ 16:58:54, in flickr, linkato 1778 volte)
Voti: 1 Media: 10 Vota cliccando sulle stelline! 

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.

Articolo Pensiero  Storico Storico Stampa Stampa   Bookmark and Share

Technorati tag  bitmap; classifica; flickr; immagine; stream;

Potrebbero interessarti anche i seguenti articoli affini....





 
# 1
orca zozza famo le cose ingrande.. eh ?
  acor3  (inviato il 11/04/2008 @ 17:20:07)
# 2
Fico no?....ciao ; - )
  Alex  (inviato il 11/04/2008 @ 17:29:47)
Anti-Spam: digita i numeri CAPTCHA Carica un nuovo codice
Testo (max 1000 caratteri)
Il tuo nome (richiesto)
La tua e-mail (non verrà mostrata)
Il tuo sito/blog (opzionale)


Disclaimer
L'indirizzo IP del mittente viene registrato, in ogni caso si raccomanda la buona educazione.

Top 5 su pensando.it

I più letti di sempre
 Rinegoziare un mutuo, ..
 Nietzsche e l'elogio d..
 Lost quinta e sesta se..
 Sull'etica e sulla mor..
 anoressia e bulimia.....
I più letti del mese
 Rinegoziare un mutuo, ..
 anoressia e bulimia.....
 Nietzsche e l'elogio d..
 Sull'etica e sulla mor..
 4geek Medley HMR-500 -..
I più commentati
 4geek Medley HMR-500 -..
 plugin tagCloud 2.2.0 ..
 Rinegoziare un mutuo, ..
 anoressia e bulimia.....
 Quanto sono utile? Qua..
I più votati
 Harry Potter e il prin..
 Lost quinta e sesta se..
 plugin vota articolo 1..
 Rinegoziare un mutuo, ..
 Nietzsche e l'elogio d..

TagClouds

Un articolo a caso

La costante di Lost : Desmond e lo spazio-tempo variabile!
...letto 6478 volte

Articoli Presenti

Ultimi commenti
  wahkma
09/02/2012 @ 18:21:56
Di viagra
  Write too wonderful ...
08/02/2012 @ 02:21:44
Di Tiffany Outlet
  rmdynf
03/02/2012 @ 21:24:16
Di accutane
  csqmkrzx
02/02/2012 @ 20:36:30
Di cash advance
  dipxgll
02/02/2012 @ 00:42:01
Di cheap cialis


Chi Sono

chi sono
Etrusco
La fantasia è più importante del sapere

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 6 persone collegate

Stuff






PageRank Checking Icon

BlogRoll


Informazioni


09/02/2012 @ 21.47.16
script eseguito in 906 ms