Stebet var að vísa mér á þessa
snilld hérna. Það kemur í ljós að það er hægt að láta .Net búa til Thumbnail (hvað er íslenska orðið eiginlega?) á mun hraðvirkari hátt með því að láta það sleppa að gera validate á það hvort um sé að ræða mynd.
Ég setti þetta upp á serverinn, barnaland.is, dyraland.is og bloggland.is en eins og flestir vita þá er mikið um Thumbnail í albúminu og er þær myndir búnar til on-the-fly á góðri íslensku. Niðurstöðurnar létu sig ekki vanta. Það tekur núna mun styttri tíma að birta myndirnar og vefþjóninn er að dóla sér í 20-30% en var áður oftast í 50-70%. Minnisnotkunin minnkaði líka um c.a. 100MB að meðaltali en ég geri ráð fyrir að það stafi af því að myndirnar þurftu að vera áður lengur í minni. Þetta er auðvitað algjör snilld þar sem þjóninn ræður núna við mun fleiri fléttingar en nokkrum sinnum áður(voru 4.3 milljónir í síðustu viku).
Svona lítur svo kóðinn út. Einfaldur.
using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read))
{
using (System.Drawing.Image g = System.Drawing.Image.FromStream(fs, true, false))
{
ImageFormat thisFormat = g.RawFormat;
if (thisFormat.Equals(ImageFormat.Gif)) {
Response.ContentType = "image/gif";
imgOutput.Save(Response.OutputStream, thisFormat);
} else if (thisFormat.Equals(ImageFormat.Png)){
MemoryStream tempStream = new MemoryStream();
imgOutput.Save(tempStream,ImageFormat.Png);
Response.ContentType = "image/png";
tempStream.WriteTo(Response.OutputStream);
} else {
Response.ContentType = "image/jpg";
imgOutput.Save(Response.OutputStream, thisFormat);
}
}
}
Það er þessi rauði false sem skiptir öllu máli. ATH! samt að þetta fall er aðeins til í .Net 1.1 SP 1.
Nú vantar mig verkefni fyrir serverinn okkar, setur maður ekki bara upp Seti@home þannig að hann hafi eitthvað að gera :)
Ég vil þakka
Stebba sérstaklega fyrir að benda mér á þetta.
Næst á dagskrá er að skoða
Provider Model Design Pattern and Specification Part 1 og Part 2, og sjá hvort að þetta henti mér og auki hraðann á gagnagrunnsfyrirspurnum. Einnig ábending frá Stebba.