Redian新闻
>
请问windows平台下在C++里如何把一张图片旋转一个角度
avatar
请问windows平台下在C++里如何把一张图片旋转一个角度# Programming - 葵花宝典
e*r
1
我想把一张bmp图片旋转一个角度, 最好能有封好的函数可以直接调用。 谢谢
avatar
a*l
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图片旋转一个角度, 最好能有封好的函数可以直接调用。 谢谢
avatar
L*n
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.
:
: 谢谢

avatar
e*r
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.
:
: 谢谢

avatar
d*l
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.
avatar
d*l
6
You spent two days asking. Programming this only takes a couple of days.
avatar
c*m
7
也不能这么说。
虽说也就是读取个文件头信息,调色板信息,各个点RGB,然后重写各个点RGB的过程。
不过图片文件格式有无数多种,折腾起来也挺麻烦,RAW的或者BMP的还好处理,碰上带
压缩的JPEG/PNG/GIF,甚至矢量图形啥的,几天基本搞不定。
再说还有效率问题,虽然操作很简单,但这种简单读/写办法很慢还很耗内存,高效算法
在图形处理这一块效果会体现的很显著。如果有比较成熟有效的API当然应该优先选用。

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

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

算法
用。

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

avatar
q*c
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.
avatar
a*l
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图片再一起拼成整个的大图片。 所
: 以图片的渲染速度很关键。
: 我对图像的绘制知道的不多,这次只求把这个任务完成就行, 还请各位尽量
: 给一些简便有效的办法
:
: 算法
: 用。

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

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

avatar
e*r
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 :)

avatar
O*d
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 :)

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。