以下是优化后的代码:

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;
    }
}

主要优化了两个地方:

  1. 释放资源

在方法结束时,需要释放原始流和结果流的资源,以防止内存泄漏。

  1. 不使用try-catch

在发生异常时,直接返回原始流,而不是使用try-catch捕获异常。这样可以避免不必要的开销和性能问题。如果需要记录异常信息,可以在方法外部捕获并处理。

C# 图片加水印方法优化:释放资源,提高效率

原文地址: https://www.cveoy.top/t/topic/lq1v 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录