65.9K
CodeProject 正在变化。 阅读更多。
Home

C# 批量照片调整大小

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.18/5 (13投票s)

2008 年 2 月 18 日

CPOL

3分钟阅读

viewsIcon

82213

downloadIcon

5474

一个小例子, 教你如何创建用于调整和编辑图片的软件

引言

在本文中,我将尝试提供一些关于使用 C# 及其基本命名空间创建照片调整大小软件的帮助。该软件本身将尝试将所有类型和大小的图像调整为“Web”版本,让用户可以选择文件夹、目标路径,还可以选择插入字幕和透明横幅。默认情况下,.NET Framework 是必不可少的。

photo_resize.JPG

背景

此软件需要注意多语言支持:我们将所有标签和按钮标题的变量声明为 public string 类型,并且当用户更改软件的语言时,我们会更改它们的容器。为了调整图片的大小,我从 MSDN 论坛和 C# 文档中获取了信息; 使用 System.Drawing 可以从原始图像创建“大缩略图”而不会丢失原始分辨率。为了在图片上插入字幕和管理透明横幅,我使用了文章 使用 GDI+ 为 .NET 创建水印照片 作为我的来源。透明横幅将通过设置两种颜色操作来插入。首先,我们用一个透明的颜色去除背景色,然后通过应用一个包含 RGBA 空间坐标的 5x5 矩阵来改变它的不透明度。 图片将使用缩放扫描进行调整大小,这意味着不同的缩放比例需要不同的尺寸(图片可以是 640x480 或 480x640)。

Using the Code

该文件是有效的图片文件吗? 要使用的主要比例是多少? 从基本上检查大小、容器和比例的 ReziseImage() 开始,我们设置新尺寸并将“新图片尺寸”抛到内存中。我们将使用这个新的图像“variable”来添加横幅或文本(如果用户想要)。

此函数还将在其末尾调用 InsertBannerAndText(),它将管理图像属性以添加或不添加到文件底部的横幅和文本。 我们还将检查图片的大小,以了解我们将使用哪种字体大小。 需要注意的一件好事是,当我们使用 Image 对象处理这些图像时,我们还必须手动复制相机详细信息。 这意味着,如果您不想丢失 EXIF 数据,则需要使用上面的代码来保存所有图片信息文件,如相机类型、图片日期、使用的相机功能等。

foreach (PropertyItem e in imagem.PropertyItems) 
{ 
    imgPhoto.SetPropertyItem(e); 
}

有关更多信息,请阅读此内容

Draw() 函数将创建要在 Windows 窗体上显示的图像。 它还进行比例检查和图片的生成。 然后,将其扔到主窗体上的 Picture Box 上。 在代码的末尾,我们有按钮,用于搜索指定文件夹中的图片,并跳过我们不想调整大小的图片。

关注点

此软件的兴趣点是尝试在每次我们将图片发送到 Orkut、Facebook、Picasa 等服务之前,更轻松地完成调整图片大小的工作,从而解决大尺寸文件或网吧慢速连接的问题,这些问题无法再处理新型相机及其巨大的图片质量。

历史

  • 1.7.1 – Web 发布 (2007 年 10 月 24 日)

谢谢

感谢 Matthis Kiechle 的德语翻译、软件测试和错误搜索。

© . All rights reserved.