求计算同比缩略图长宽的函数

我是翔子 2010-04-20 10:47:41
原图长宽:

int Source_Width;
int Source_Height;

缩略图画板的长宽:

int Board_Width;
int Board_Height;

缩略图的长宽:

int Small_Width;
int Small_Height;

根据原图的长宽,和缩略图画板的长宽,计算出同比缩略图的长宽,谢谢
...全文
58 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lester19872007 2010-04-20
  • 打赏
  • 举报
回复

/// <summary>
/// 生成缩略图
/// </summary>
/// <param name="originalImagePath">源图路径(物理路径)</param>
/// <param name="thumbnailPath">缩略图路径(物理路径)</param>
/// <param name="width">缩略图宽度</param>
/// <param name="height">缩略图高度</param>
/// <param name="mode">生成缩略图的方式</param>
public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode)
{
Image originalImage = Image.FromFile(originalImagePath);

int towidth = width;
int toheight = height;

int x = 0;
int y = 0;
int ow = originalImage.Width;
int oh = originalImage.Height;

switch (mode)
{
case "HW"://指定高宽缩放(可能变形)
break;
case "W"://指定宽,高按比例
toheight = originalImage.Height * width / originalImage.Width;
break;
case "H"://指定高,宽按比例
towidth = originalImage.Width * height / originalImage.Height;
break;
case "Cut"://指定高宽裁减(不变形)
if ((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight)
{
oh = originalImage.Height;
ow = originalImage.Height * towidth / toheight;
y = 0;
x = (originalImage.Width - ow) / 2;
}
else
{
ow = originalImage.Width;
oh = originalImage.Width * height / towidth;
x = 0;
y = (originalImage.Height - oh) / 2;
}
break;
default:
break;
}

zgke 2010-04-20
  • 打赏
  • 举报
回复
public Size GetThumbnailSize(Size p_SourceSize, Size p_BoardSize)
{
decimal _Width =(decimal) p_BoardSize.Width / p_SourceSize.Width;
decimal _Height = (decimal)p_BoardSize.Height / p_SourceSize.Height;
decimal _Factor = _Width;
if (_Height < _Width) _Factor = _Height;
return new Size((int)(p_SourceSize.Width * _Factor), (int)(p_SourceSize.Height * _Factor));
}

这样? 同比例的。 如果你要定一个宽或则高 自己改把。
我是翔子 2010-04-20
  • 打赏
  • 举报
回复
怎么没人啦

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧