<?xml version="1.0" encoding="iso-8859-9" ?>
<?xml-stylesheet type="text/xsl" href="RSS_xslt_style.asp" version="1.0" ?>
<rss version="2.0" xmlns:WebWizForums="http://syndication.webwizguide.com/rss_namespace/">
 <channel>
  <title>Datakent Forum : leptonica write bmp with pixWriteMemBmp function</title>
  <link>http://forum.datakent.com/</link>
  <description>XML içerik linki; Datakent Forum : C, C++, Visual C++ : leptonica write bmp with pixWriteMemBmp function</description>
  <pubDate>Sun, 26 Apr 2026 19:30:50 +0000</pubDate>
  <lastBuildDate>Sun, 16 Dec 2012 17:26:02 +0000</lastBuildDate>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Web Wiz Forums 9.54</generator>
  <ttl>360</ttl>
  <WebWizForums:feedURL>forum.datakent.com/RSS_post_feed.asp?TID=2472</WebWizForums:feedURL>
  <image>
   <title>Datakent Forum</title>
   <url>http://forum.datakent.com/forum_images/datakent.com_forums.png</url>
   <link>http://forum.datakent.com/</link>
  </image>
  <item>
   <title>leptonica write bmp with pixWriteMemBmp function : leptonica - bmpio.c//---------...</title>
   <link>http://forum.datakent.com/forum_posts.asp?TID=2472&amp;PID=5175#5175</link>
   <description>
    <![CDATA[<strong>Yazar:</strong> <a href="http://forum.datakent.com/member_profile.asp?PF=4094" rel="nofollow">aziz.alkurt</a><br /><strong>Konu:</strong> 2472<br /><strong>Gönderim Zamanı:</strong> 16.Aralik.2012 Saat 17:26<br /><br />leptonica - bmpio.c<br>//----------------------------------------------------------------------------------------------------------------------<br>l_int32<br>pixWriteMemBmp(l_uint8&nbsp; **pdata,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; size_t&nbsp;&nbsp;&nbsp; *psize,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PIX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *pix)<br>{<br>l_uint32&nbsp;&nbsp;&nbsp; offbytes, filebytes, fileimagebytes;<br>l_int32&nbsp;&nbsp;&nbsp;&nbsp; width, height, depth, d, xres, yres;<br>l_uint16&nbsp;&nbsp;&nbsp; bfType, bfSize, bfFill1, bfReserved1, bfReserved2;<br>l_uint16&nbsp;&nbsp;&nbsp; bfOffBits, bfFill2, biPlanes, biBitCount;<br>l_uint16&nbsp;&nbsp;&nbsp; sval;<br>l_uint32&nbsp;&nbsp;&nbsp; biSize, biWidth, biHeight, biCompression, biSizeImage;<br>l_uint32&nbsp;&nbsp;&nbsp; biXPelsPerMeter, biYPelsPerMeter, biClrUsed, biClrImportant;<br>l_int32&nbsp;&nbsp;&nbsp;&nbsp; pixWpl, pixBpl, extrabytes, writeerror;<br>l_int32&nbsp;&nbsp;&nbsp;&nbsp; fileBpl, fileWpl;<br>l_int32&nbsp;&nbsp;&nbsp;&nbsp; i, j, k;<br>l_int32&nbsp;&nbsp;&nbsp;&nbsp; heapcm;&nbsp; /* extra copy of cta on the heap ? 1 : 0 */<br>l_uint8&nbsp;&nbsp;&nbsp; *data;<br>l_uint8&nbsp;&nbsp;&nbsp;&nbsp; pel&#091;4&#093;;<br>l_uint32&nbsp;&nbsp; *line, *pword;<br>PIXCMAP&nbsp;&nbsp;&nbsp; *cmap;<br>l_uint8&nbsp;&nbsp;&nbsp; *cta;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* address of the bmp color table array */<br>l_int32&nbsp;&nbsp;&nbsp;&nbsp; cmaplen;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* number of bytes in the bmp colormap */<br>l_int32&nbsp;&nbsp;&nbsp;&nbsp; ncolors, val, stepsize;<br>RGBA_QUAD&nbsp; *pquad;<br>l_uint8 *pdataTMP;<br>unsigned int hacked;<br>&nbsp;&nbsp;&nbsp; PROCNAME("pixWriteMemBmp");<br><br>&nbsp;&nbsp;&nbsp; if (!pix)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ERROR_INT("pix not defined", procName, 1);<br><br>&nbsp;&nbsp;&nbsp; width&nbsp; = pixGetWidth(pix);<br>&nbsp;&nbsp;&nbsp; height = pixGetHeight(pix);<br>&nbsp;&nbsp;&nbsp; d&nbsp; = pixGetDepth(pix);<br>&nbsp;&nbsp;&nbsp; if (d == 2)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; L_WARNING("writing 2 bpp bmp file; nobody else can read", procName);<br>&nbsp;&nbsp;&nbsp; depth = d;<br>&nbsp;&nbsp;&nbsp; if (d == 32)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; depth = 24;<br>&nbsp;&nbsp;&nbsp; xres = (l_int32)(39.37 * (l_float32)pixGetXRes(pix) + 0.5);&nbsp; /* to ppm */<br>&nbsp;&nbsp;&nbsp; yres = (l_int32)(39.37 * (l_float32)pixGetYRes(pix) + 0.5);&nbsp; /* to ppm */<br><br>&nbsp;&nbsp;&nbsp; pixWpl = pixGetWpl(pix);<br>&nbsp;&nbsp;&nbsp; pixBpl = 4 * pixWpl;<br>&nbsp;&nbsp;&nbsp; fileWpl = (width * depth + 31) / 32;<br>&nbsp;&nbsp;&nbsp; fileBpl = 4 * fileWpl;<br>&nbsp;&nbsp;&nbsp; fileimagebytes = height * fileBpl;<br><br>&nbsp;&nbsp;&nbsp; heapcm = 0;<br>&nbsp;&nbsp;&nbsp; if (d == 32) {&nbsp;&nbsp; /* 24 bpp rgb; no colormap */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ncolors = 0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cmaplen = 0;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; else if ((cmap = pixGetColormap(pix))) {&nbsp;&nbsp; /* existing colormap */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ncolors = pixcmapGetCount(cmap);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cmaplen = ncolors * sizeof(RGBA_QUAD);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cta = (l_uint8 *)cmap-&gt;array;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; else {&nbsp;&nbsp; /* no existing colormap; make a binary or gray one */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (d == 1) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cmaplen&nbsp; = sizeof(bwmap);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ncolors = 2;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cta = (l_uint8 *)bwmap;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else {&nbsp;&nbsp; /* d != 32; output grayscale version */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ncolors = 1 &lt;&lt; depth;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cmaplen = ncolors * sizeof(RGBA_QUAD);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; heapcm = 1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ((cta = (l_uint8 *)CALLOC(cmaplen, 1)) == NULL)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ERROR_INT("colormap alloc fail", procName, 1);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stepsize = 255 / (ncolors - 1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (i = 0, val = 0, pquad = (RGBA_QUAD *)cta;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i &lt; ncolors;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i++, val += stepsize, pquad++) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pquad-&gt;blue = pquad-&gt;green = pquad-&gt;red = val;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Convert to little-endian and write the file header data */<br>&nbsp;&nbsp;&nbsp; bfType = convertOnBigEnd16(BMP_ID);<br>&nbsp;&nbsp;&nbsp; offbytes = BMP_FHBYTES + BMP_IHBYTES + cmaplen;<br>&nbsp;&nbsp;&nbsp; filebytes = offbytes + fileimagebytes;<br>&nbsp;&nbsp;&nbsp; *psize=filebytes;<br>&nbsp;&nbsp;&nbsp; pdataTMP=(unsigned char*) malloc (sizeof(unsigned char)*filebytes);<br>&nbsp;&nbsp;&nbsp; sval = filebytes &amp; 0x0000ffff;<br>&nbsp;&nbsp;&nbsp; bfSize = convertOnBigEnd16(sval);<br>&nbsp;&nbsp;&nbsp; sval = (filebytes &gt;&gt; 16) &amp; 0x0000ffff;<br>&nbsp;&nbsp;&nbsp; bfFill1 = convertOnBigEnd16(sval);<br>&nbsp;&nbsp;&nbsp; bfReserved1 = 0;<br>&nbsp;&nbsp;&nbsp; bfReserved2 = 0;<br>&nbsp;&nbsp;&nbsp; sval = offbytes &amp; 0x0000ffff;<br>&nbsp;&nbsp;&nbsp; bfOffBits = convertOnBigEnd16(sval);<br>&nbsp;&nbsp;&nbsp; sval = (offbytes &gt;&gt; 16) &amp; 0x0000ffff;<br>&nbsp;&nbsp;&nbsp; bfFill2 = convertOnBigEnd16(sval);<br><br>&nbsp;&nbsp;&nbsp; memcpy(pdataTMP,&amp;bfType,2);<br>&nbsp;&nbsp;&nbsp; memcpy(pdataTMP+2,&amp;bfSize,2);<br>&nbsp;&nbsp;&nbsp; memcpy(pdataTMP+4,&amp;bfFill1,2);<br>&nbsp;&nbsp;&nbsp; memcpy(pdataTMP+6,&amp;bfReserved1,2);<br>&nbsp;&nbsp;&nbsp; memcpy(pdataTMP+8,&amp;bfReserved1,2);<br>&nbsp;&nbsp;&nbsp; memcpy(pdataTMP+10,&amp;bfOffBits,2);<br>&nbsp;&nbsp;&nbsp; memcpy(pdataTMP+12,&amp;bfFill2,2);<br><br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Convert to little-endian and write the info header data */<br>&nbsp;&nbsp;&nbsp; biSize = convertOnBigEnd32(BMP_IHBYTES);<br>&nbsp;&nbsp;&nbsp; biWidth = convertOnBigEnd32(width);<br>&nbsp;&nbsp;&nbsp; biHeight = convertOnBigEnd32(height);<br>&nbsp;&nbsp;&nbsp; biPlanes = convertOnBigEnd16(1);<br>&nbsp;&nbsp;&nbsp; biBitCount = convertOnBigEnd16(depth);<br>&nbsp;&nbsp;&nbsp; biCompression&nbsp;&nbsp; = 0;<br>&nbsp;&nbsp;&nbsp; biSizeImage = convertOnBigEnd32(fileimagebytes);<br>&nbsp;&nbsp;&nbsp; biXPelsPerMeter = convertOnBigEnd32(xres);<br>&nbsp;&nbsp;&nbsp; biYPelsPerMeter = convertOnBigEnd32(yres);<br>&nbsp;&nbsp;&nbsp; biClrUsed = convertOnBigEnd32(ncolors);<br>&nbsp;&nbsp;&nbsp; biClrImportant = convertOnBigEnd32(ncolors);<br><br>&nbsp;&nbsp;&nbsp; memcpy(pdataTMP+14,&amp;biSize,4);<br>&nbsp;&nbsp;&nbsp; memcpy(pdataTMP+18,&amp;biWidth,4);<br>&nbsp;&nbsp;&nbsp; memcpy(pdataTMP+22,&amp;biHeight,4);<br>&nbsp;&nbsp;&nbsp; memcpy(pdataTMP+26,&amp;biPlanes,2);<br>&nbsp;&nbsp;&nbsp; memcpy(pdataTMP+28,&amp;biBitCount,2);<br>&nbsp;&nbsp;&nbsp; memcpy(pdataTMP+30,&amp;biCompression,4);<br>&nbsp;&nbsp;&nbsp; memcpy(pdataTMP+34,&amp;biSizeImage,4);<br>&nbsp;&nbsp;&nbsp; memcpy(pdataTMP+38,&amp;biXPelsPerMeter,4);<br>&nbsp;&nbsp;&nbsp; memcpy(pdataTMP+42,&amp;biYPelsPerMeter,4);<br>&nbsp;&nbsp;&nbsp; memcpy(pdataTMP+46,&amp;biClrUsed,4);<br>&nbsp;&nbsp;&nbsp; memcpy(pdataTMP+50,&amp;biClrImportant,4);<br><br>&nbsp;&nbsp;&nbsp; hacked=54;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Write the colormap data */<br><br>&nbsp;&nbsp;&nbsp; if (ncolors &gt; 0) <br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; memcpy(pdataTMP+hacked,cta,cmaplen);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (heapcm)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FREE(cta);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; hacked+=cmaplen;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* When you write a binary image with a colormap<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * that sets BLACK to 0, you must invert the data */<br>&nbsp;&nbsp;&nbsp; if (depth == 1 &amp;&amp; cmap &amp;&amp; ((l_uint8 *)(cmap-&gt;array))&#091;0&#093; == 0x0) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pixInvert(pix, pix);<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; pixEndianByteSwap(pix);<br>&nbsp;&nbsp;&nbsp; writeerror = 0;<br>&nbsp;&nbsp;&nbsp; if (depth != 24) <br>&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp; /* typ 1 or 8 bpp */<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data = (l_uint8 *)pixGetData(pix) + pixBpl * (height - 1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (i = 0; i &lt; height; i++) <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; memcpy(pdataTMP+hacked,data,fileBpl);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; hacked+=fileBpl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data -= pixBpl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; else {&nbsp; /* 32 bpp pix; 24 bpp file<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * See the comments in pixReadStreamBMP() to<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * understand the logic behind the pixel ordering below.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * Note that we have again done an endian swap on<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * little endian machines before arriving here, so that<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * the bytes are ordered on both platforms as:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Red&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Green&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Blue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |-----------|------------|-----------|-----------|<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; extrabytes = fileBpl - 3 * width;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line = pixGetData(pix) + pixWpl * (height - 1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (i = 0; i &lt; height; i++) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (j = 0; j &lt; width; j++) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pword = line + j;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pel&#091;2&#093; = *((l_uint8 *)pword + COLOR_RED);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pel&#091;1&#093; = *((l_uint8 *)pword + COLOR_GREEN);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pel&#091;0&#093; = *((l_uint8 *)pword + COLOR_BLUE);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; memcpy(pdataTMP+hacked,&amp;pel,3);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hacked+=3;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (extrabytes) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; memcpy(pdataTMP+hacked,&amp;pel,3);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; hacked+=extrabytes;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line -= pixWpl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Restore to original state */<br>&nbsp;&nbsp;&nbsp; pixEndianByteSwap(pix);<br>&nbsp;&nbsp;&nbsp; if (depth == 1 &amp;&amp; cmap &amp;&amp; ((l_uint8 *)(cmap-&gt;array))&#091;0&#093; == 0x0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pixInvert(pix, pix);<br><br>&nbsp;&nbsp;&nbsp; if (writeerror)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ERROR_INT("image write fail", procName, 1);<br>&nbsp;&nbsp;&nbsp; *pdata = (l_uint8*)pdataTMP;<br>&nbsp;&nbsp;&nbsp; return 0;<br>}<br>//----------------------------------------------------------------------------------------------------------------------<br>]]>
   </description>
   <pubDate>Sun, 16 Dec 2012 17:26:02 +0000</pubDate>
   <guid isPermaLink="true">http://forum.datakent.com/forum_posts.asp?TID=2472&amp;PID=5175#5175</guid>
  </item> 
 </channel>
</rss>