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

Fireball.Core FreeImage 包装器

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.29/5 (3投票s)

2006年1月4日

2分钟阅读

viewsIcon

51084

downloadIcon

1600

发现 Fireball.Core FreeImage C# 包装器。

Free Image Demo Example

引言

Fireball.Core 是一个用 C# 开发的类库,旨在集成我日常工作所需的 API,并作为我其他开源库的基础。 在本文中,我只能描述 FreeImage 类,但 Fireball.Core 库中还包含其他一些类。

背景

FreeImage 是用于操作图像的最佳开源类库。 要使 Fireball.Core 库正常工作,您需要从 SourceForge 下载它。 应下载 Windows 版本的二进制文件并将其放在 C:\Windows\System32 中。 我还在此提供一个小的示例项目,以展示使用它有多么简单,但该示例不完整,包装器还需要更多的工作。

使用代码

使用 FreeImage 包装器非常简单,您只需要在您的项目引用 Fireball.Core.dll 并添加一个 using 指令并使用文件名实例化该类即可。

using System;
using System.Drawing;

public class test
{
    ....

    FreeImage _fi = null;

    public void LoadImage(string filename)
    {
        _fi = new FreeImage(filename);
    }
}

现在,您已经加载了图像文件。 在该图像上,您可以应用旋转、亮度更改或对比度。 请参阅应用旋转的示例,如下所示

    public void Rotate(double angle)
    {
        _fi.Rotate(angle);
    }

示例:如果您调用 test.Rotate(25);,您就将对图像应用了 25 度的左旋转!!

要查看更详细的类视图,请参阅 此图像,该图像是从 Visual Studio 类图中导出的。

现在,为了应用一些效果,我正在实现一个 FreeImageTrasformation 类,它作为所有转换类的基类,例如 FreeImageRescale。 例如,您有一个 1240 x 1200 的图像,需要将其缩放到 800 x 600;您只需两行代码即可完成

FreeImageRescale rscTransform = new FreeImageRescale(800, 600);
_FreeImage.ApplyTransformation(rscTransform);

目前就到此为止! 我没有更多时间来编写。 当您需要操作大图像时,FreeImage 也是最佳选择,因为 .NET 框架的 Bitmap 类不支持大图像。 如果您有兴趣为这个项目做出贡献,您可以简单地在 Fireball 论坛上注册加入 Fireball 社区。 在我的网站上,您可以在下载部分找到每日构建版本。 所有代码均在 LGPL 许可条款下,允许您将库链接到您的商业项目,而无需重新分发您的代码! 您只需要在 Fireball.Core 库所在的同一目录中包含一个 lgpl.txt 文件,并链接到我的网站即可。 在您的关于消息中进行任何引用将不胜感激;)

关注点

请为 Fireball 项目 做出贡献!

© . All rights reserved.