Connecting Tech Pros Worldwide Forums | Help | Site Map

rotate bmp (Xlib)

Dariusz.Donimirski@gmail.com
Guest
 
Posts: n/a
#1: Jan 17 '08
I must rotate bmp using Xlib without change bmp's memory. If someone
knows how I can do this, please help me.


dariusz
sorry about my english, I'm still learning

Ben Pfaff
Guest
 
Posts: n/a
#2: Jan 17 '08

re: rotate bmp (Xlib)


Dariusz.Donimirski@gmail.com writes:
Quote:
I must rotate bmp using Xlib without change bmp's memory. If someone
knows how I can do this, please help me.
Perhaps you should ask about this in a newsgroup related to Xlib.
You are more likely to get correct responses if you ask there.
--
char a[]="\n .CJacehknorstu";int putchar(int);int main(void){unsigned long b[]
={0x67dffdff,0x9aa9aa6a,0xa77ffda9,0x7da6aa6a,0xa6 7f6aaa,0xaa9aa9f6,0x11f6},*p
=b,i=24;for(;p+=!*p;*p/=4)switch(0[p]&3)case 0:{return 0;for(p--;i--;i--)case+
2:{i++;if(i)break;else default:continue;if(0)case 1:putchar(a[i&15]);break;}}}
Malcolm McLean
Guest
 
Posts: n/a
#3: Jan 17 '08

re: rotate bmp (Xlib)


<Dariusz.Donimirski@gmail.comwrote in
Quote:
>
>I must rotate bmp using Xlib without change bmp's memory. If someone
knows how I can do this, please help me.
>
Load the bmp into memory.
I recently posted functions to do this.

Then apply the formula

ax = x - centralx;
ay = y - centraly;

(assuming you wnat to rotate about the centre)

theta is the angle to rotate by

bx = ax * cos(theta) - ay * sin(theta);
by = ax * sin(theta) + ay * cos(theta);

x = bx + centralx;
y = by + centraly;

Work from destination to source, or you will get missing pixel in the
destination image.
(For a very high quality rotate you need to do anti-alising as well).

Then you simply use Xlib to display the new image you have constructed. I'm
pretty sure it has no built-in rotate functions itself.

--
Free games and programming goodies.
http://www.personal.leeds.ac.uk/~bgy1mm


Closed Thread