画矩形图像剪切的问题 HRGN ZFX=CreatePolygonRgn(pt,4,ALTERNATE); //创建矩形获得斜矩形外框大小,用内存DC,将外框所在区域的图像画到内存位图上请教这步怎么写 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 假设,这时的图像1:1显示,你的红色矩形宽w,高h:1、首先做一个函数: GetAllPtOnLine(POINT p1,POINT p2,vector<POINT> &pV) 本函数的意思是,给我两个点,这两个点连成一条线段,将经过的所有点,放到pV中。pV的元素个数将会是你新图像的宽度。2、从两条平行的对边各取一对点,这两点的连线应该平行于矩形的其余两边。套用上面函数。 通过for循环,将所有POINT填充到h个vector<POINT>中。这时候会得到h个pV。3.每个pV就是你新图像的一行像素在原图中的坐标。去按坐标取像素值就行了。最后把h行连起来就是新图像的矩阵了。 你自己画的矩形A创建一个内存dc memDC使用CreatePolygonRgn创建一个区域rgn,将rgn选入memDC将包含A的矩形(和屏幕平行,和A想接)区bitblt到memDC使用plgBlt传到目标, 这个应该就是一个坐标变换啊, 既然你已经GetPixel取得了点数据, 然后把这个点通过函数转换到你需要的点, 在新的DC下绘制出来即可.比如原来的点是在(1,1), 顺时针旋转90度后变成(1.414,0), 如果取整就是(1,0). 这时, GetPixel(1,1)然后SetPixel(1,0). 图像就正了. 只是这个旋转需要计算好, 可能会有一些变形,失真, 感谢大家,通过点坐标转换后,图片终于正了,但是结果令人失望,像素降低的太明显了好像有很多外围轮廓阴影存在本人用的是cximage 先GetPixelColor 转换坐标后 再用SetPixelColor方法如果是不带任何角度的裁剪,无损失但是角度的裁剪,损失严重,具体如下图:请教高手们是什么原因造成的,有好的解决办法没? 用切错 (shear) 方法, 旋转 要好些, 求助串口类的动态链接库的问题 【高手进CSocket Connect问题 非常怪异】 求助高手一个关于MFC的问题? 有关EXEL的问题? 如何用SDK实现分隔条?100分敬上!! 关于DB-Library程序的打包问题,送分题!在线等候! 关于CComboBox的问题??? 怎样处理注册表? VC紧急求助! 我搞到了visual studio.net beta 1可是....... 列表控件嵌入树形控件 不采用广播,对多个IP同时发送数据的问题
GetAllPtOnLine(POINT p1,POINT p2,vector<POINT> &pV)
本函数的意思是,给我两个点,这两个点连成一条线段,将经过的所有点,放到pV中。pV的元素个数将会是你新图像的宽度。2、从两条平行的对边各取一对点,这两点的连线应该平行于矩形的其余两边。套用上面函数。
通过for循环,将所有POINT填充到h个vector<POINT>中。这时候会得到h个pV。3.每个pV就是你新图像的一行像素在原图中的坐标。去按坐标取像素值就行了。最后把h行连起来就是新图像的矩阵了。
创建一个内存dc memDC
使用CreatePolygonRgn创建一个区域rgn,
将rgn选入memDC
将包含A的矩形(和屏幕平行,和A想接)区bitblt到memDC
使用plgBlt传到目标,
这时, GetPixel(1,1)然后SetPixel(1,0). 图像就正了.
只是这个旋转需要计算好, 可能会有一些变形,失真,
好像有很多外围轮廓阴影存在
本人用的是cximage 先GetPixelColor 转换坐标后 再用SetPixelColor方法
如果是不带任何角度的裁剪,无损失
但是角度的裁剪,损失严重,具体如下图:
请教高手们是什么原因造成的,有好的解决办法没?