Hi Friends, I have to manipulate ( rotate ) a tiff file having 5600 x 6600 pixels. For that I created a pixbuf from file
Glib::RefPtrGdk::Pixbuf m_ppixBuf; m_ppixBuf = Gdk::Pixbuf::create_from_file(filename );
int lHeight = m_ppixBuf->get_height(); int lWidth = m_ppixBuf->get_width(); int lRotatedRowStride = m_ppixBuf->get_rowstride();
Then collected data in a local variable, gchar* pixdata = m_ppixBuf->get_pixels();
Allocating equivalent memory to one temporary variable gchar* tmpdata = (char *) malloc( lHeight * lWidth * lNo_of_channels);
Then coying pixels one by one from source to target using memcpy function.
// case 90 degree :
for(j = 0, k = (lHeight-1); j < lHeight; j++, k--) { for(i = 0; i < lWidth; i++) { memcpy(&tmpmap[i * lRotatedRowStride + k * iNo_of_Channel], &bitmap[j * lRowstride + i * iNo_of_Channel], iNo_of_Channel); } }
This code works fine , but takes lot of time to rotate large image.
Is there any other way to make this operation faster?
Also I want to save modified pixbuf in "tiff" file, but GDK library allows me to save only in PNG and JPEG format. How will I save it in tiff format?
If anyone knows please help me.
Thanks, Ramachandra
On Fri, Oct 10, 2003 at 01:06:22PM +0530, Philip S Tellis wrote:
Next LUG meet: 12 Oct 2003 around 4 pm - VJTI Computer Centre
On Fri, 10 Oct 2003, Ramachandra Putti wrote:
I have to manipulate ( rotate ) a tiff file having 5600 x 6600
man display.
^^ possible only if ImageMagick installed!
- JJH