.net实现图片任意角度倾斜(不是旋转),比如水平方向

sweet_ 2015-05-01 12:05:11
RT 大家好!小弟被这个问题困惑好久了,谢谢大家了
...全文
562 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
比如说这个博客:http://www.cnblogs.com/beniao/archive/2010/04/04/1703992.html 以及这个博客http://www.cnblogs.com/beniao/archive/2010/03/27/1696173.html 它的例子几乎都是从一本2010年以前出版的关于 silverlight3 进行2d Animation 动画入门的英文书上直接扒下来的(只不过博客作者声明说“全部原创”而已)。这本书也是我在2010年、2011年初选择的一本 silverlight 英文参考书。而那个时候wpf要比silverlight早成熟好几年。 当时博客圆抄袭国外博客、msdn手册之风(作为个人原创的博客)盛行,2010年、2011念我几乎只关注这个博客是真正诠释了原创精神的:http://www.cnblogs.com/alamiye010/tag/WPF%2FSilverlight%E5%8A%A8%E7%94%BB%E6%B8%B8%E6%88%8F%E6%95%99%E7%A8%8B/
  • 打赏
  • 举报
回复
引用 2 楼 sweet_ 的回复:
谢谢你的回答 ,不过这样 就是整个图片从绘一边 ,速度估计很慢 ,我意思是有没有啥系统类库专门搞这个事了,比如旋转 缩放 这些,还有就是我说的这种情况 扭曲(Skew) 这种我不会弄
10年前的.net的桌面开发平台wpf和网页开发平台silvelrigh就是这样的了。 只不过如果你问只会winform编程的人话,等于白问。你可以问问.net winform版本是大概哪年发布最后一版的,而wpf大概是哪年最后一版的,看看知不知道。 你可以找到许多2010年以前出版的wpf4和silvelright3/4相关的英文2d、3d动画开发著作。因为那才是.net种用来开发绘图应用系统产品的框架,而winform只是画点点用的。
tcmakebest 2015-05-03
  • 打赏
  • 举报
回复
要什么效果给个示例呢,应该很容易的
winner2050 2015-05-01
  • 打赏
  • 举报
回复
int width=88; int height=88; Bitmap mybm = ****;//原始图片 Bitmap bm = new Bitmap(width, height);//初始化一个记录经过处理后的图片对象 int x, y, z;//x,y是循环次数,z是用来记录像素点的x坐标的变化的 Color pixel; 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));//绘图 } }
good_jobs 2015-05-01
  • 打赏
  • 举报
回复
基于顶点的图像自由变换
图像2D转3D算法
xuzuning 2015-05-01
  • 打赏
  • 举报
回复
旋转、缩放 是很基本的要求,而扭曲的级别就高多了 你的需求在 C++ 可轻松搞定,C# 就要困难一些了 你可在 BitmapData 中做偏移计算 但需要注意的是,扭曲不是简单的像素搬家,找到高效的插值算法是很有必要的
sweet_ 2015-05-01
  • 打赏
  • 举报
回复
引用 1 楼 winner2050 的回复:
int width=88; int height=88; Bitmap mybm = ****;//原始图片 Bitmap bm = new Bitmap(width, height);//初始化一个记录经过处理后的图片对象 int x, y, z;//x,y是循环次数,z是用来记录像素点的x坐标的变化的 Color pixel; 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) 这种我不会弄
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 依据所提供的资料,我们深入剖析此问题以及所给出的两种算法方案。 ### 问题背景 该问题源自王晓东编撰的《算法设计与实验题解》一书,书中阐述了一个值得注意的数学议题:针对一本页码从1到n顺序编号的书籍,要求统计所有页码中数字0至9各自出现的频次。例如,若n=13,则页码序列为1、2、...、13,其中数字1出现5次(体现在1、10、11、12、13中),数字0出现1次(体现在10中)。 ### 问题描述 具体而言,我们需要开发一种算法,其输入参数为一个正整数n,输出结果需为0至9这十个数字各自出现的频次。所有页码均以十进制形式呈现,且不包含任何前导零,即不会出现如006之类的页码表示。 ### 解决方案一:时间复杂度为O(n*log10(n))的算法 首先,介绍一种时间复杂度为O(n*log10(n))的算法实现。其核心构思在于遍历从1到n的每一个数值,然后逐一分解每个数值的各个位,并统计各类数字出现的频次。具体步骤如下: 1. 初始化一个长度为10的数组`count`,用于记录0至9每个数字出现的频次,初始值均为0。 2. 从1开始遍历至n,对于每一个数值i,将其转换为整数并进行以下操作: - 利用循环结构,持续将当前数值除以10,获取余数(即当前最低位的数字),并累加到对应的计数器中。 3. 遍历完成后,输出`count`数组中的每一个元素,即为所求的结果。 ### 解决方案二:优化算法 为了提升效率,提出了一种更为优越的算法。该算法基于以下观察:在1到10^n-1之间的任意区间内,每一种数字0至9出现的频次是相等的。例如,在1到999之间,每一种数字0至9出现的频次均相...

111,130

社区成员

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

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

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