日期:2014-05-18  浏览次数:20564 次

关于图片截取???
用户上传图片后!~可以在页面某个范围内拖动刚刚上传的图片!在页面可以拖动的范围内中间有个矩形框(可以理解为是div)图片显示在这个矩形的范围内就是要截取的部分
怎么实现这种功能??、应用于webfrom的.....
求教高手提供思路!或提供源码更好!
分不够!可以另外在当独加!

------解决方案--------------------
这是裁剪的后台处理方法。

至于用Javascript获取选择点的坐标位置这个就不难了,去搜一下:彩信DIY 有很多这样做的,参考一下他们的源程序吧。祝你好运。。。

// ===============================

/// <summary>
/// 剪裁 -- 用GDI+
/// </summary>
/// <param name= "b "> 原始Bitmap </param>
/// <param name= "StartX "> 开始坐标X </param>
/// <param name= "StartY "> 开始坐标Y </param>
/// <param name= "iWidth "> 宽度 </param>
/// <param name= "iHeight "> 高度 </param>
/// <returns> 剪裁后的Bitmap </returns>
public static Bitmap KiCut(Bitmap b, int StartX, int StartY, int iWidth, int iHeight)
{
if (b == null)
{
return null;
}

int w = b.Width;
int h = b.Height;

if (StartX > = w || StartY > = h)
{
return null;
}

if (StartX + iWidth > w)
{
iWidth = w - StartX;
}

if (StartY + iHeight > h)
{
iHeight = h - StartY;
}

try
{
Bitmap bmpOut = new Bitmap(iWidth, iHeight, PixelFormat.Format24bppRgb);

Graphics g = Graphics.FromImage(bmpOut);
g.DrawImage(b, new Rectangle(0, 0, iWidth, iHeight), new Rectangle(StartX, StartY, iWidth, iHeight), GraphicsUnit.Pixel);
g.Dispose();

return bmpOut;
}
catch
{
return null;
}
}


------解决方案--------------------
刚好前面做过一个类似的功能
思路给你说一下

一个高度和宽度都固定的DIV 里面 放一个2行2列的table

用户图片选择后 放到 第二行第二列里 左上角对齐

然后在图片的onmove事件中用javascript控制第一行第一列表格的高度和宽度

这样就可以实现图片的部分选取

下面的工作就好做了

根据DIV的宽度和高度 减去 第一行第一列表格的宽度和高度 就是图片减取的部分