问题描述
RT大家好!小弟被这个问题困惑好久了,谢谢大家了
解决方案
解决方案二:
intwidth=88;intheight=88;Bitmapmybm=****;//原始图片Bitmapbm=newBitmap(width,height);//初始化一个记录经过处理后的图片对象intx,y,z;//x,y是循环次数,z是用来记录像素点的x坐标的变化的Colorpixel;for(y=height-1;y>=0;y--){for(x=width-1,z=0;x>=0;x--){pixel=mybm.GetPixel(x,y);//获取当前像素的值bm.SetPixel(z++,y,Color.FromArgb(pixel.R,pixel.G,pixel.B));//绘图}}
解决方案三:
引用1楼winner2050的回复:
intwidth=88;intheight=88;Bitmapmybm=****;//原始图片Bitmapbm=newBitmap(width,height);//初始化一个记录经过处理后的图片对象intx,y,z;//x,y是循环次数,z是用来记录像素点的x坐标的变化的Colorpixel;for(y=height-1;y>=0;y--){for(x=width-1,z=0;x>=0;x--){pixel=mybm.GetPixel(x,y);//获取当前像素的值bm.SetPixel(z++,y,Color.FromArgb(pixel.R,pixel.G,pixel.B));//绘图}}
谢谢你的回答,不过这样就是整个图片从绘一边,速度估计很慢,我意思是有没有啥系统类库专门搞这个事了,比如旋转缩放这些,还有就是我说的这种情况扭曲(Skew)这种我不会弄
解决方案四:
旋转、缩放是很基本的要求,而扭曲的级别就高多了你的需求在C++可轻松搞定,C#就要困难一些了你可在BitmapData中做偏移计算但需要注意的是,扭曲不是简单的像素搬家,找到高效的插值算法是很有必要的
解决方案五:
基于顶点的图像自由变换图像2D转3D算法
解决方案六:
要什么效果给个示例呢,应该很容易的
解决方案七:
引用2楼sweet_的回复:
谢谢你的回答,不过这样就是整个图片从绘一边,速度估计很慢,我意思是有没有啥系统类库专门搞这个事了,比如旋转缩放这些,还有就是我说的这种情况扭曲(Skew)这种我不会弄
10年前的.net的桌面开发平台wpf和网页开发平台silvelrigh就是这样的了。只不过如果你问只会winform编程的人话,等于白问。你可以问问.netwinform版本是大概哪年发布最后一版的,而wpf大概是哪年最后一版的,看看知不知道。你可以找到许多2010年以前出版的wpf4和silvelright3/4相关的英文2d、3d动画开发著作。因为那才是.net种用来开发绘图应用系统产品的框架,而winform只是画点点用的。
解决方案八:
比如说这个博客:以及这个博客它的例子几乎都是从一本2010年以前出版的关于silverlight3进行2dAnimation动画入门的英文书上直接扒下来的(只不过博客作者声明说“全部原创”而已)。这本书也是我在2010年、2011年初选择的一本silverlight英文参考书。而那个时候wpf要比silverlight早成熟好几年。当时博客圆抄袭国外博客、msdn手册之风(作为个人原创的博客)盛行,2010年、2011念我几乎只关注这个博客是真正诠释了原创精神的: