Работает dr aws текст номера и имени на лотерейном билете и правильно сохраняет его в файле клиента. Но затем возвращает меня = не на веб-страницу, а на полный черный экран с изображением билета. Нет способа сделать это go прочь и вернуться на веб-страницу, за исключением повторного запуска страницы. Я попытался записать в поток памяти, но он не сохранил бы его правильно, если бы я удалил Response.OutputStream
и изменил его на поток памяти в этой строке = bitmap.Save(Response.OutputStream, ImageFormat.Jpeg);
Потребовалось меньше времени, чтобы научиться использовать графику c Система с нуля, чем узнать, как сделать так, чтобы она не отображалась на экране. Lost!
protected string RaffelTicketWrImg(string sOrigBlankTicketImg, string sTicketNbr)
{
//creating a image object
System.Drawing.Image bitmap = (System.Drawing.Image)Bitmap.FromFile(sOrigBlankTicketImg); // set image
//draw the image object using a Graphics object
Graphics g = Graphics.FromImage(bitmap);
//Set the alignment based on the coordinates
StringFormat stringformat = new StringFormat();
stringformat.Alignment = StringAlignment.Center;
stringformat.LineAlignment = StringAlignment.Center;
//stringformat.FormatFlags = StringFormatFlags.DirectionVertical;
StringFormat stringformat2 = new StringFormat();
stringformat2.Alignment = StringAlignment.Center;
stringformat2.LineAlignment = StringAlignment.Center;
//Set the font color/format/size etc..
System.Drawing.Color StringColor = ColorTranslator.FromHtml("#000000");//direct color adding
System.Drawing.Color StringColor2 = ColorTranslator.FromHtml("#000000");//customise color adding
string sWriteThis = sTicketNbr;//Your Text On Image
string sWriteThis2 = sTicketNbr;//Your Text On Image
//Ticket Size 1.26" by 2.62"
//Graphics g = this.CreateGraphics();
double dLen = ((sTicketNbr.Length / 2) * 13) / 2;
int iPixcels = bitmap.Width;
double iPoints = iPixcels * g.DpiX / Convert.ToInt16(72); //72 / 96;
int iX_Hroz = Convert.ToInt16((iPoints / 2) - Convert.ToInt16(dLen));
int iY_Vert = 30;
g.DrawString(sWriteThis, new Font("arial", 14, FontStyle.Bold),
new SolidBrush(StringColor), new Point(iX_Hroz, iY_Vert), stringformat); Response.ContentType = "image/jpeg";
iY_Vert = 222;
g.DrawString(sWriteThis2, new Font("arial", 14, FontStyle.Bold),
new SolidBrush(StringColor2), new Point(iX_Hroz, iY_Vert), stringformat2); Response.ContentType = "image/jpeg";
sWriteThis = txPersonNamed.Text;//Your Text On Image
//Ticket Size 1.26" by 2.62"
string[] words = sWriteThis.Split(' ');
iX_Hroz = 15;
iY_Vert = 90;
stringformat.Alignment = StringAlignment.Near;
stringformat.LineAlignment = StringAlignment.Near;
foreach (var word in words)
{
g.DrawString(word.ToString(), new Font("arial", 10, FontStyle.Bold),
new SolidBrush(StringColor), new Point(iX_Hroz, iY_Vert), stringformat);
Response.ContentType = "image/jpeg";
iY_Vert += 20;
}
bitmap.Save(Response.OutputStream, ImageFormat.Jpeg);
string sSaveFile = Vars.TicketPath + "/" + sTicketNbr + ".jpg";
if (txEmail.Text.Length == 0) //Test Diaplay
{
if (File.Exists(sSaveFile)) File.Delete(sSaveFile);
}
bitmap.Save(sSaveFile, System.Drawing.Imaging.ImageFormat.Jpeg);
// Release memory used by the Graphics object
// and the bitmap.
g.Dispose();
bitmap.Dispose();
// Send the output to the client.
Response.Flush();
}