Jag har gjort såhär:
Istället för
Response.BinaryWrite(ms.ToArray());
har jag istället:
[i]Bitmap[/i].Save(this.Response.OutputStream, ImageFormat.Jpeg);
(dvs din Img)
2 svar · 470 visningar · startad av Vinnaren
Ska försöka göra en UserControll som slumpar ut en säkerhetskod som en bild, men får det inte att fungera. Som koden är nu kommer det fram en ladda ner/öppna dialog. Har koden:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// Ska ha 4 slumpade tecken
string rnd = RndSecurity(4);
Session["security"] = rnd;
// Skapar bilden med de slumpade tecknen
SecurityImage(rnd);
}
private void SecurityImage(string strSecurity)
{
int intHeight = strSecurity.Length * 12;
// Storleken på bilden
Bitmap Img = new Bitmap(intHeight, 25);
Graphics g = Graphics.FromImage(Img);
// Grafiska inställningar
g.Clear(Color.LightSteelBlue);
Font f = new Font("Arial", 12);
SolidBrush s = new SolidBrush(Color.RoyalBlue);
g.DrawString(strSecurity, f, s, 3, 3);
MemoryStream ms = new MemoryStream();
Img.Save(ms, ImageFormat.Jpeg);
Response.ClearContent();
Response.ContentType = "images/jpg";
Response.AddHeader("Content-Disposition", "filename=VCode.jpg");
Response.BinaryWrite(ms.ToArray());
g.Dispose();
Img.Dispose();
Response.End();
}
// Slumpar tal eller bokstäver
private string RndSecurity(int number)
{
// Vad som kan slumpas
string strSecurityLine = "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
string[] arrSecurity = strSecurityLine.Split(new Char[] { ',' });
string strRandom = "";
Random rand = new Random();
// loopar så många gånger som anges i number
for (int i = 1; i < number + 1; i++)
{
// Slumpar ett tal
int t = rand.Next(34)+1;
// Hämtar från arrayen o sparar i variabel
strRandom += arrSecurity[t];
}
return strRandom;
}
}
Hur gör jag för att visa bilden på sidan?
Tacksam för all hjälp :stud
Jag har gjort såhär:
Istället för
Response.BinaryWrite(ms.ToArray());
har jag istället:
[i]Bitmap[/i].Save(this.Response.OutputStream, ImageFormat.Jpeg);
(dvs din Img)
tack, men löste det genom att länka in aspx-sidan som en bild :)