用于 VB(5 或 .NET)的基本和简单的图像处理库

Posted

技术标签:

【中文标题】用于 VB(5 或 .NET)的基本和简单的图像处理库【英文标题】:Basic & easy image manipulation library for VB (5 or .NET) 【发布时间】:2011-09-03 14:24:45 【问题描述】:

这个话题在 Stack Overflow 上已经被多次触及,但我的搜索仍然没有给我答案。

我正在寻找一个简单易用、非常基本的图像编辑库。我需要做的就是检查 jpeg 和 png 文件的大小并将它们旋转 90° 的倍数。

我可以在 VB.NET 或者最好是 VB5 中开发我的应用程序,并且我没有使用任何其他库。

我尝试了Advanced Image Library(基于Free Image Library),但我无法正确注册dll,我担心我在分发应用程序时也会遇到问题。

还有更简单的吗?如果不是免费的也没关系,只要费用合理。

感谢您的帮助,如果答案已经在其他地方而我看不到,我深表歉意

【问题讨论】:

【参考方案1】:

在 .NET 中,您可以在没有外部库的情况下进行旋转;如果您可以在 .NET 中编写代码并在此处使用 .NET Framework 原语,例如(C#):

public static Bitmap RotateImage(Image image, PointF offset, float angle)

 int R1, R2;
 R1 = R2 = 0;
 if (image.Width > image.Height)
        R2 = image.Width - image.Height;
 else
        R1 = image.Height-image.Width;

 if (image == null)
        throw new ArgumentNullException("image");

 //create a new empty bitmap to hold rotated image
 Bitmap rotatedBmp = new Bitmap(image.Width +R1+40, image.Height+R2+40);
 rotatedBmp.SetResolution(image.HorizontalResolution, image.VerticalResolution);

 //make a graphics object from the empty bitmap
 Graphics g = Graphics.FromImage(rotatedBmp);

 //Put the rotation point in the center of the image
 g.TranslateTransform(offset.X + R1/2+20, offset.Y + R2/2+20);

 //rotate the image
 g.RotateTransform(angle);

 //move the image back
 g.TranslateTransform(-offset.X - R1 / 2-20, -offset.Y - R2 / 2-20);

 //draw passed in image onto graphics object 
 g.DrawImage(image, new PointF(R1 / 2+20, R2 / 2+20));

 return rotatedBmp;

【讨论】:

非常感谢大卫! (Davide Piras?你是来自撒丁岛吗?我是这个岛的忠实爱好者!)实际上,VB5 会比 VB.net 好得多,因为它可以在早期版本的 Windows 上运行,并且不会强制人们下载 .NET 框架。最重要的是,我对旧 VB 的熟练程度要高得多,而且在 .NET 中编写应用程序需要更多时间。不管怎么说,还是要谢谢你!我可能最终会使用您的解决方案!

以上是关于用于 VB(5 或 .NET)的基本和简单的图像处理库的主要内容,如果未能解决你的问题,请参考以下文章

vb.net 仅外部属性或方法

如何使用 vb.net 和 SQL Server 裁剪和调整图像大小

C#/VB.NET 给PDF文档添加文本/图像水印

在 .exe vb.net 中编译图像

.net 4.5 框架中用于图像编辑的命名空间

哪个 IDE 用于基于 .NET 框架 2.5 构建的 VB.NET 代码?