Tjena
Jag håller på att skapa en bild med en text och jag använder då
följande kod:
string text = "blabla text";
PrivateFontCollection pfc = new PrivateFontCollection();
pfc.AddFontFile(Server.MapPath("/fonts/circulat.ttf"));
Font regFont = new Font(pfc.Families[0],16,FontStyle.Regular,GraphicsUnit.Pixel);
SolidBrush sb = new SolidBrush(Color.Black);
PointF pf = new PointF(0,0);
Bitmap pic = new Bitmap(200,regFont.Height);
Graphics g = Graphics.FromImage(pic);
g.Clear(ColorTranslator.FromHtml("#FFFFFF"));
g.TextRenderingHint = TextRenderingHint.AntiAlias;
g.SmoothingMode = SmoothingMode.AntiAlias;
g.DrawString(text,regFont,sb,pf);
Response.ContentType = "image/jpeg";
pic.Save(Response.OutputStream, ImageFormat.Jpeg);
pic.Dispose();
Nu är det så att jag på nåt sätt vill räkna fram hur stor
bildens bredd och höjd kommer vara så jag slipper skapa en bild
som är förstor eller förliten så att inte texten visas, texten
kommer ju variera beroende på olika omständigheter.
Få ut höjden har jag löst genom regFont.Height, så det
är bara bredden kvar. Måste jag gå in manuellt och mäta bredden
på respektive bokstav och lagra detta för att sedan dela upp
strängen och addera bredden på de bokstäver som finns? Detta
känns ganska omständigt så jag undrar helt enkelt om det finns
någon bättre metod?
Sen undrar jag även om det går att få bakgrunden på bilden
transparent har försökt med
g.Clear(Color.Transparent);
och ändrat formatet från jpeg till gif men hela bilden har bara
blivit svart.