如何使用c#剪裁图片中倾斜的矩形区域

xizhangren 2008-05-21 10:55:25
大家好,这是我第一次在这里发帖请教问题,希望大家多多指教! 我的问题是这样的,我有一张扫描得到的图像,里面有一张倾斜的纸张,我已经得到了纸张的四个顶点(倾斜校正的算法已经想好),现在想将纸张从扫描图像里面挖出来作为校正后的图像。我对图像处理和GDI+都不太熟,我用Graphics.fromImage(image),然后用GraphicsPath将纸张围起来,如果此时将路径画出来的话可以看到对图片的改变。现在问题来了,我开始是将路径围绕成的区域(也就是纸张的区域)旋转或平移都无法对图片做出改变,然后我直接用Graphics.RotateTransform等方法改变绘图表面也对图片做不了改变。我现在没有办法了,怎么办?(如果我没说清楚,我可以在回复下补充,谢谢!)
...全文
432 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
csrwgs 2008-05-21
  • 打赏
  • 举报
回复
如果你选中的图片是平行四边形.
那么你可以点阵操作,将每个点阵的都平移到长方形
gomoku 2008-05-21
  • 打赏
  • 举报
回复
Graphics.RotateTransform() itself is passive.

It means you need to do something after it so that the rotation can be applied:


Bitmap source = ...;
Bitmap rectified = new Bitmap(source.Width, source.Height);
using(Graphics g = Graphics.FromImage(rectified))
{
g.RotateTransform(10);
g.DrawImageUnscaled(source, 0,0); //<---
}
rectified.Save("rectified.jpg");

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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