c# - 在 .NET 中提取图像的一部分

标签 c# .net vb.net image playing-cards

我将一副纸牌的 PNG 作为 1 个图像(它将所有 52 张纸牌组合成一个图像文件)。如何根据需要提取单个卡片(或在启动时将它们全部提取到单独的图像文件中)。

我理解知道要获取哪一行和哪一列的逻辑,这是我遇到问题的实际图像处理代码。

我正在使用 Visual Studio 2010 和 VB(尽管任何 .NET 语言的示例代码都可以)。

我不允许发布图片本身,但这里有一个示例图片

http://www.jfitz.com/cards/windows-playing-cards.png

谢谢。

最佳答案

这将加载原始版本并创建从 (0,0) 开始且尺寸为 100x100 的裁剪版本。您必须编写逻辑来遍历每张卡片,知道何时移动到下一行等。但是,一旦您知道坐标和尺寸,这应该可以帮助您取出卡片。

Bitmap cards = new Bitmap(@"C:\SomePath\");
Rectangle srcRect = new Rectangle(0, 0, 100, 100);
Bitmap card = (Bitmap)cards.Clone(srcRect, cards.PixelFormat);

顺便说一句,我没有包括对 card.Save() 的调用,因为在保存过程中有很多选项要设置,这有点超出你的问题范围。但是,有关如何将其保存到磁盘的信息,see http://msdn.microsoft.com/en-us/library/ytz20d80.aspx .

关于c# - 在 .NET 中提取图像的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13893517/

相关文章:

c# - 启动进程后获取进程的友好名称

c# - Google Spanner - 使用自定义凭据执行查询

c# - 通用交换难度

c# - 如何在 xaml 中裁剪图像并限制图像宽度? (温特)

C++ SHFileOperation 64位操作系统

vb.net - 我可以让我的派生类自动使用基构造函数吗?

vb.net - 如何在vb代码内的DataTable上的linq中正确执行 "group by"?

c# - 在 C# 中使用 ffmpeg.exe 将 MPG 转换为 AVI

.net - 使用 dotPeek 打开 .dll 文件

c# - 从 Azure 表存储中删除批处理时如何避免 404