请教 C# 大神 asp.net 实现 将 在指定 图片下 添加 文字。要求原图大小不变,尺寸 高度增加 一定的高度,

请教 C# 大神 asp.net 实现 将 在指定 图片下 添加 文字。要求原图大小不变,尺寸 高度增加 一定的高度,,第1张

public Image DrawText(Image original,string text,Font font,Color color,int height)

{

Image result=new Bitmap(original.Width,original.Height+height)

using(Graphics graphics=Graphics.FromImage(result))

{

graphics.DrawImage(original,0,0)

Rectangle rect=new Rectangle(0,original.Height,original.Width,height)

using(SolidBrush brush=new SolidBrush(color))

{

using(StringFormat format=new StringFormat())

{

format.Alignment=StringAlignment.Near

format.LineAlignment=StringAlignment.Center

graphics.DrawString(text,font,brush,rect,format)

}

}

}

return result

}

using System.Drawing

using System.Drawing.Drawing2D

using System.Drawing.Imaging

public class ImageHelper

{

/// <summary><SUMMARY></SUMMARY>

/// 获取图片中的各帧

/// </summary>

/// <param name="pPath"><PARAM name="pPath" />图片路径</param>

/// <param name="pSavePath"><PARAM name="pSavePath" />保存路径</param>

public void GetFrames(string pPath, string pSavedPath)

{

Image gif = Image.FromFile(pPath)

FrameDimension fd = new FrameDimension(gif.FrameDimensionsList[0])

//获取帧数(gif图片可能包含多帧,其它格式图片一般仅一帧)

int count = gif.GetFrameCount(fd)

//以Jpeg格式保存各帧

for (int i = 0i <counti++)

{

gif.SelectActiveFrame(fd, i)

gif.Save(pSavedPath + "\\frame_" + i + ".jpg", ImageFormat.Jpeg)

}

}

/// <summary><SUMMARY></SUMMARY>

/// 获取图片缩略图

/// </summary>

/// <param name="pPath"><PARAM name="pPath" />图片路径</param>

/// <param name="pSavePath"><PARAM name="pSavePath" />保存路径</param>

/// <param name="pWidth"><PARAM name="pWidth" />缩略图宽度</param>

/// <param name="pHeight"><PARAM name="pHeight" />缩略图高度</param>

/// <param name="pFormat"><PARAM name="pFormat" />保存格式,通常可以是jpeg</param>

public void GetSmaller(string pPath, string pSavedPath, int pWidth, int pHeight)

{

try

{

Image smallerImg

Image originalImg = Image.FromFile(pPath)

Image.GetThumbnailImageAbort callback = new Image.GetThumbnailImageAbort(ThumbnailCallback)

smallerImg = originalImg.GetThumbnailImage(pWidth, pHeight, callback, IntPtr.Zero)

smallerImg.Save(pSavedPath + "\\smaller.jpg", ImageFormat.Jpeg)

}

catch (Exception x)

{

//

}

}

/// <summary><SUMMARY></SUMMARY>

/// 获取图片指定部分

/// </summary>

/// <param name="pPath"><PARAM name="pPath" />图片路径</param>

/// <param name="pSavePath"><PARAM name="pSavePath" />保存路径</param>

/// <param name="pPartStartPointX"><PARAM name="pPartStartPointX" />目标图片开始绘制处的坐标X值(通常为)</param>

/// <param name="pPartStartPointY"><PARAM name="pPartStartPointY" />目标图片开始绘制处的坐标Y值(通常为)</param>

/// <param name="pPartWidth"><PARAM name="pPartWidth" />目标图片的宽度</param>

/// <param name="pPartHeight"><PARAM name="pPartHeight" />目标图片的高度</param>

/// <param name="pOrigStartPointX"><PARAM name="pOrigStartPointX" />原始图片开始截取处的坐标X值</param>

/// <param name="pOrigStartPointY"><PARAM name="pOrigStartPointY" />原始图片开始截取处的坐标Y值</param>

/// <param name="pFormat"><PARAM name="pFormat" />保存格式,通常可以是jpeg</param>

public void GetPart(string pPath, string pSavedPath, int pPartStartPointX, int pPartStartPointY, int pPartWidth, int pPartHeight, int pOrigStartPointX, int pOrigStartPointY)

{

Image originalImg = Image.FromFile(pPath)

Bitmap partImg = new Bitmap(pPartWidth, pPartHeight)

Graphics graphics = Graphics.FromImage(partImg)

Rectangle destRect = new Rectangle(new Point(pPartStartPointX, pPartStartPointY), new Size(pPartWidth, pPartHeight))//目标位置

Rectangle origRect = new Rectangle(new Point(pOrigStartPointX, pOrigStartPointY), new Size(pPartWidth, pPartHeight))//原图位置(默认从原图中截取的图片大小等于目标图片的大小)

graphics.DrawImage(originalImg, destRect, origRect, GraphicsUnit.Pixel)

partImg.Save(pSavedPath + "\\part.jpg", ImageFormat.Jpeg)

}

public bool ThumbnailCallback()

{

return false

}

}

希望对你有所帮助


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11782426.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存