以下是一个在 C# 中实现调整图像大小同时保持纵横比和最大高度的示例代码: ```csharp using System; using System.Drawing; using System.Drawing.Imaging; class Progra

这是一个用于调整图像大小的方法ResizeImage

  • 主要观点:接收原始文件路径、新文件路径、新宽度、最大高度和一个布尔值OnlyResizeIfWider作为参数,用于调整图像大小并保存。
  • 关键信息:

    • 通过System.Drawing.Image.FromFile(OriginalFile)获取原始图像FullsizeImage
    • 先将图像旋转 180 度两次以防止使用内部缩略图。
    • 根据OnlyResizeIfWider的值判断是否仅在图像更宽时进行调整。如果是,且图像高度大于最大高度,则根据宽度和高度比例计算新宽度。
    • 使用FullsizeImage.GetThumbnailImage(NewWidth, NewHeight, null, IntPtr.Zero)获取调整大小后的图像NewImage
    • 释放原始图像的句柄以避免资源占用,通过FullsizeImage.Dispose()
    • 最后使用NewImage.Save(NewFile)保存调整大小后的图像。
  • 重要细节:在调整大小过程中,根据给定的条件计算新的宽度和高度,以确保图像在不超过最大高度的情况下进行调整。如果只需要在图像更宽时调整大小,并且图像高度超过最大高度,将根据宽度和高度比例计算新宽度,并将新高度设置为最大高度。调整大小后的图像通过GetThumbnailImage方法获取,然后保存到新文件中。
阅读 11
0 条评论