C# 图片加水印方法优化:释放资源,提高效率
以下是优化后的代码:
Stream SetMark(Stream srcStream, HttpContext context)
{
try
{
string txt = GetMarkText(context);
if (srcStream.CanSeek)
{
srcStream.Seek(0, SeekOrigin.Begin);
};
Stream result = Utility.GetImageTextWaterMask(srcStream, txt);
if (srcStream.CanSeek)
{
srcStream.Seek(0, SeekOrigin.Begin);
};
if (result.CanSeek)
{
result.Seek(0, SeekOrigin.Begin);
};
// 释放原始流和结果流的资源
srcStream.Dispose();
return result;
}
catch (Exception ex)
{
LogHelper.Error(ex);
return srcStream;
}
}
主要优化了两个地方:
- 释放资源
在方法结束时,需要释放原始流和结果流的资源,以防止内存泄漏。
- 不使用try-catch
在发生异常时,直接返回原始流,而不是使用try-catch捕获异常。这样可以避免不必要的开销和性能问题。如果需要记录异常信息,可以在方法外部捕获并处理。
原文地址: https://www.cveoy.top/t/topic/lq1v 著作权归作者所有。请勿转载和采集!