/**//// <summary>
/// 功能:將文字寫入圖片
/// 日期:2006-11-20
/// 作者:楊義賢
/// </summary>
/// <param name="strfilename">文件名字</param>
/// <param name="strtext">需要寫入的文字</param>
private void texttoimage(string strfilename,string strtext)
{
if(!file.exists(mappath(strfilename)))
{
throw new filenotfoundexception("文件不存在!");
}
if( strtext == string.empty )
{
return;
}
//還需要判斷文件類型是否為圖像類型
system.drawing.image image = system.drawing.image.fromfile(mappath(strfilename));
bitmap bitmap = new bitmap(image,image.width,image.height);
graphics grap = graphics.fromimage(bitmap);
float fontsize = 24.0f; //字體大小
float textwidth = strtext.length*fontsize; //文本的長度
//下面定義一個矩形區域,以后在這個矩形里畫上白底黑字
float rectx = 0;
float recty = 0;
float rectwidth = strtext.length*(fontsize+12);
float rectheight = fontsize+8;
string strfont;//定義字體類型
//聲明矩形域
rectanglef textarea = new rectanglef(rectx,recty,rectwidth,rectheight);
strfont = ddlfont.selecteditem.text.tostring().trim();
font font = new font(strfont,fontsize); //定義字體
brush whitebrush = new solidbrush(color.white); //白筆刷,畫文字用
brush blackbrush = new solidbrush(color.transparent); //黑筆刷,畫背景用
grap.fillrectangle(blackbrush,rectx,recty,rectwidth,rectheight);
grap.drawstring(strtext,font,whitebrush,textarea);
memorystream ms = new memorystream();
//保存為jpg類型
bitmap.save(ms,imageformat.jpeg);
//輸出處理后的圖像.//在這里可以將生成后的圖片放大oracle數據庫power中
response.clear();
response.contenttype = "image/jpeg";
response.binarywrite(ms.toarray());
grap.dispose();
bitmap.dispose();
image.dispose();
}
事件:
private void btnwrite_click(object sender, system.eventargs e)
{
httppostedfile httppostfile; //客戶端上載文件對象
httppostfile = docupload.postedfile;
string strtemp;
string strfilename;//完成文件名
strtemp = httppostfile.filename.tostring().trim();
strfilename = getrealfilename(strtemp);
string strimg = "images/";
texttoimage(strimg +strfilename,txtdocname.text.tostring());
}/**//// <summary>
/// 功能:獲取文件名
/// 日期:2006-11-20
/// 作者:楊義賢
/// </summary>
/// <param name="strpathname">文件路徑</param>
/// <returns></returns>
public string getrealfilename(string strpathname)
{
string [] strfilename = strpathname.split('/');
int ipos = strfilename.getupperbound(0);
return strfilename[ipos];
}
|
新聞熱點
疑難解答
圖片精選