由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 请问windows平台下在C++里如何把一张图片旋转一个角度
相关主题
iOS UITabBarController 问题我也来BSO一下这一周的战绩
用户需要下载网页上动态产生的复杂SVG,如何破?kindle 3 中文转换的成功率问题
expert system shell 现在哪个好些? clips? jess? or ???有啥国内的山寨板推荐?
如何知道Youtube播放的一个clip放完了?试多看2012 R1了么?
有木有能处理大数据的deductive database system, 用Prolog/Datalog?how to insert svg into powerpoint 2013?
求助Java Image Tools or API美国新英格兰地区广西同乡会会徽设计征集
Google Android 9" Tablet PC $89.99--这个tablet是个好deal吗【$】Nook Color (Certified Pre-Owned) $179.99 AC $2.95 Ship, maybe FS through O.co (aka Overstock)
[求购]长期大量求购 Itunes GC @0.88【2015总结】 懒人的非主流风光摄影
相关话题的讨论汇总
话题: 图片话题: clipping话题: 旋转话题: bmp话题: alpha
进入Programming版参与讨论
1 (共1页)
e******r
发帖数: 220
1
我想把一张bmp图片旋转一个角度, 最好能有封好的函数可以直接调用。 谢谢
a****l
发帖数: 8211
2
intel ipp.amd framewave.ffmpeg. However, if just processing one picture,it's
much faster to run it in photoshop, because you would need a learning curve
for those libraries.

谢谢

【在 e******r 的大作中提到】
: 我想把一张bmp图片旋转一个角度, 最好能有封好的函数可以直接调用。 谢谢
L***n
发帖数: 6727
3
or magick++, a c++ wrapper for imagemagick

's
curve

【在 a****l 的大作中提到】
: intel ipp.amd framewave.ffmpeg. However, if just processing one picture,it's
: much faster to run it in photoshop, because you would need a learning curve
: for those libraries.
:
: 谢谢

e******r
发帖数: 220
4
我有很多图片要经常地旋转任意角度,所以手工是不现实的。

's
curve

【在 a****l 的大作中提到】
: intel ipp.amd framewave.ffmpeg. However, if just processing one picture,it's
: much faster to run it in photoshop, because you would need a learning curve
: for those libraries.
:
: 谢谢

d*****l
发帖数: 8441
5
You also need to consider potential clipping, if clipping is allowed, or
padding blank pixels, if clipping is not allowed.
I would say that programming by yourself might be better. It is not
difficult. There are Windows API that can read and save BMPs, you only need
to do rotation and interpolation by yourself.
d*****l
发帖数: 8441
6
You spent two days asking. Programming this only takes a couple of days.
c*m
发帖数: 1114
7
也不能这么说。
虽说也就是读取个文件头信息,调色板信息,各个点RGB,然后重写各个点RGB的过程。
不过图片文件格式有无数多种,折腾起来也挺麻烦,RAW的或者BMP的还好处理,碰上带
压缩的JPEG/PNG/GIF,甚至矢量图形啥的,几天基本搞不定。
再说还有效率问题,虽然操作很简单,但这种简单读/写办法很慢还很耗内存,高效算法
在图形处理这一块效果会体现的很显著。如果有比较成熟有效的API当然应该优先选用。

【在 d*****l 的大作中提到】
: You spent two days asking. Programming this only takes a couple of days.
N***m
发帖数: 4460
8
能不自己coding就尽量别自己写,这应该是个general rule。
当然想练习编程另说。

【在 d*****l 的大作中提到】
: You spent two days asking. Programming this only takes a couple of days.
e******r
发帖数: 220
9
这个是给一个三维展示软件用的。 每次用几个16*16的BMP图片旋转不同角度拼
到一个256*256的图片里, 若干个这样的256*256图片再一起拼成整个的大图片。 所
以图片的渲染速度很关键。
我对图像的绘制知道的不多,这次只求把这个任务完成就行, 还请各位尽量
给一些简便有效的办法

算法
用。

【在 c*m 的大作中提到】
: 也不能这么说。
: 虽说也就是读取个文件头信息,调色板信息,各个点RGB,然后重写各个点RGB的过程。
: 不过图片文件格式有无数多种,折腾起来也挺麻烦,RAW的或者BMP的还好处理,碰上带
: 压缩的JPEG/PNG/GIF,甚至矢量图形啥的,几天基本搞不定。
: 再说还有效率问题,虽然操作很简单,但这种简单读/写办法很慢还很耗内存,高效算法
: 在图形处理这一块效果会体现的很显著。如果有比较成熟有效的API当然应该优先选用。

q*c
发帖数: 9453
10
or even less time...
BMP is integer array, and rotation is likle;
x' = x*sin(alpha) + y*cos(alpha)
y' = x*cos(alpha) - y*sin(alpha)
do not take this formula....google it :)

【在 d*****l 的大作中提到】
: You spent two days asking. Programming this only takes a couple of days.
a****l
发帖数: 8211
11
in this case, I would suggest using intel IPP, which uses cpu's advanced
instructions to speed up those basic calculations.
You can get it for around $200(?). If you (or your boss) is so cheap as to
want to save even 200, I believe IPP has a 30-day evaluation...

【在 e******r 的大作中提到】
: 这个是给一个三维展示软件用的。 每次用几个16*16的BMP图片旋转不同角度拼
: 到一个256*256的图片里, 若干个这样的256*256图片再一起拼成整个的大图片。 所
: 以图片的渲染速度很关键。
: 我对图像的绘制知道的不多,这次只求把这个任务完成就行, 还请各位尽量
: 给一些简便有效的办法
:
: 算法
: 用。

O*******d
发帖数: 20343
12
旋转图片有质量损失。 多次累积旋转是最糟糕的。 当然,旋转角度是90度的整数的例外。

【在 e******r 的大作中提到】
: 这个是给一个三维展示软件用的。 每次用几个16*16的BMP图片旋转不同角度拼
: 到一个256*256的图片里, 若干个这样的256*256图片再一起拼成整个的大图片。 所
: 以图片的渲染速度很关键。
: 我对图像的绘制知道的不多,这次只求把这个任务完成就行, 还请各位尽量
: 给一些简便有效的办法
:
: 算法
: 用。

e******r
发帖数: 220
13
就这么简单? 两个转换就够了? 是不是我把这个想的太难了。

【在 q*c 的大作中提到】
: or even less time...
: BMP is integer array, and rotation is likle;
: x' = x*sin(alpha) + y*cos(alpha)
: y' = x*cos(alpha) - y*sin(alpha)
: do not take this formula....google it :)

O*******d
发帖数: 20343
14
不是这么简单。 算出来的x' y'都不是整数。 要放到整数的位置上,还需要
extrapolation

【在 q*c 的大作中提到】
: or even less time...
: BMP is integer array, and rotation is likle;
: x' = x*sin(alpha) + y*cos(alpha)
: y' = x*cos(alpha) - y*sin(alpha)
: do not take this formula....google it :)

1 (共1页)
进入Programming版参与讨论
相关主题
【2015总结】 懒人的非主流风光摄影有木有能处理大数据的deductive database system, 用Prolog/Datalog?
Windows上用OpenGL速度问题求助Java Image Tools or API
请问intel custom foundry group 怎么样?Google Android 9" Tablet PC $89.99--这个tablet是个好deal吗
【求购】 itunes gift card $25 @0.83 or 550 rmb 价格当日有[求购]长期大量求购 Itunes GC @0.88
iOS UITabBarController 问题我也来BSO一下这一周的战绩
用户需要下载网页上动态产生的复杂SVG,如何破?kindle 3 中文转换的成功率问题
expert system shell 现在哪个好些? clips? jess? or ???有啥国内的山寨板推荐?
如何知道Youtube播放的一个clip放完了?试多看2012 R1了么?
相关话题的讨论汇总
话题: 图片话题: clipping话题: 旋转话题: bmp话题: alpha