<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>bmp &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/bmp/</link>
	<description>Feed of posts on WordPress.com tagged "bmp"</description>
	<pubDate>Tue, 24 Nov 2009 17:24:50 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[  Photoline 15.5 - editor con soporte vectorial    ]]></title>
<link>http://soft1wares.wordpress.com/2009/11/22/photoline-15-5-editor-con-soporte-vectorial/</link>
<pubDate>Sun, 22 Nov 2009 15:42:27 +0000</pubDate>
<dc:creator>chicsoft</dc:creator>
<guid>http://soft1wares.wordpress.com/2009/11/22/photoline-15-5-editor-con-soporte-vectorial/</guid>
<description><![CDATA[PhotoLine 15.52 English | Medicina Incl. PhotoLine es una excelente aplicación gráfica orientada a l]]></description>
<content:encoded><![CDATA[PhotoLine 15.52 English | Medicina Incl. PhotoLine es una excelente aplicación gráfica orientada a l]]></content:encoded>
</item>
<item>
<title><![CDATA[Operacje na Bitmapkach .Net (1)]]></title>
<link>http://lammichalfranc.wordpress.com/2009/11/22/operacje-na-bitmapkach-net-1/</link>
<pubDate>Sun, 22 Nov 2009 00:02:11 +0000</pubDate>
<dc:creator>LaM</dc:creator>
<guid>http://lammichalfranc.wordpress.com/2009/11/22/operacje-na-bitmapkach-net-1/</guid>
<description><![CDATA[Postaram się w tym wpisie przedstawić 2 metody [możliwe że dorzucę trzecią] dostępu i wykonywania op]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Postaram się w tym wpisie przedstawić 2 metody [możliwe że dorzucę trzecią] dostępu i wykonywania operacji na Bitmapach.</p>
<p><strong>1. GetPixel() , SetPixel()</strong></p>
<p>Jest to najłatwiejszy i najprostszy sposób dostępu do naszego obrazka bądź Bitmapy. Wystarczy że wczytamy nasz obrazek do Obiektu Bitmap i wywołamy jego metody:</p>
<p><code><strong><em>GetPixel(int x,int y)<br />
SetPixel(int x,int y,Color color)</em></strong><br />
</code></p>
<p>Iteracje po wszystkich Pikselach można np Zrealizować w taki sposób</p>
<p><code><strong><em> for (int y = 0; y &#60; _bmp.Height; y++)<br />
{<br />
for (int x = 0; x &#60; _bmp.Width; x++)<br />
{<br />
_bmp.SetPixel(x,y,color);<br />
Color  c = _bmp.GetPixel(x,y);<br />
}<br />
}</em></strong></code></p>
<p>Plusy:<br />
- Czytelny kod<br />
- Łatwość w implementacji</p>
<p>Minusy:<br />
-Bardzo mała wydajność</p>
<p>Ta metoda nadaje się niestety do prostych operacji Graficznych. Operacji których nie będziemy często powtarzać. W przypadku realizacji algorytmu skalowania obrazków ta metoda jest strasznie powolna. Potrzebowałem szybszego sposobu. Rozwiązaniem okazało się GDI+.</p>
<p><strong>2.  GDI i LockBits.</strong></p>
<p>Classa Bitmap dostarcza nam dwie metody LockBits i UnlockBits które pozwalają nam dostać się bezpośrednio do pamięci. Metoda LockBits zwraca obiekt BitmapData który opisuje nam to miejsce w pamięci. W metodzie tej wykorzystujemy wskaźniki więc kod należy objąć obszarem unsafe bądź klasą zadeklarowaną jako unsafe.</p>
<p><strong><em> BitmapData _bmd = _bmp.LockBits(new Rectangle(0, 0, _bmp.Width,_bmp.Height) , ImageLockMode.ReadWrite, _bmp.PixelFormat);</em></strong></p>
<p>Pierwsze argument jest obszarem Bitmapy do którego chcemy uzyskać dostęp. W tym przypadku pobieram całą Bitmape. Drugi argument jest enumeratorem określającym operacje które będziemy mogli wykonywać [ W tym przypadku odczyt - zapis]. Ostatnim argumentem jest Format w jakim zapisana jest Bitmapa.</p>
<p>Mając obiekt BitmapData tworzymy zestaw zmiennych.</p>
<p><strong><em> int _pixelSize = 3;</em></strong></p>
<p><strong><em> byte* _current =(byte*)(void*)_bmd.Scan0;</em></strong></p>
<p><strong><em> int _nWidth = _bmp.Width * _pixelSize;</em></strong></p>
<p><strong><em> int _nHeight = _bmp.Height;</em></strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<div id="_mcePaste">- ScanO<span style="font-weight:normal;"> adres w pamięci oznaczający początek naszej bitmapy zapamiętujemy sobie we wskaźniku _current.</span></div>
<div><span style="font-weight:normal;">-</span>_nWidth<span style="font-weight:normal;"> ilośc bitów w jednym wierszu</span></div>
<div><span style="font-weight:normal;">Iterację po całym obrazku można zrealizować przy pomocy zagnieżdzonych pętli for.</span></div>
<div>
<div><span style="font-weight:normal;"> </span></div>
<div><em> <strong> for (int y = 0; y &#60; _nHeight; y++)</strong></em></div>
<div><em><strong> {</strong></em></div>
<div><em><strong> for (int x = 0; x &#60; _nWidth;x++ )</strong></em></div>
<div><em><strong> {</strong></em></div>
<div><em><strong> if (x % _pixelSize == 0 &#124;&#124; x == 0)</strong></em></div>
<div><em><strong> {</strong></em></div>
<div><em><strong> SetColor(new Color.Black);</strong></em></div>
<div><em><strong> }</strong></em></div>
<div><em><strong> _current++;</strong></em></div>
<div><em><strong> }</strong></em></div>
<div><em><strong> }</strong></em></div>
<div><span style="font-weight:normal;">Należy pamiętać że _current jest tylko wskaźnikiem który wskazuje nam adres wartości przechowywanych przez konkretny pixel. W takiej realizacji i poprzez zastosowanie warunku :</span></div>
<div><span style="font-weight:normal;"><br />
</span></div>
<div><span style="font-weight:normal;"><em> if (x % _pixelSize == 0 &#124;&#124; x == 0)</em></span></div>
<div><em><span style="font-style:normal;"><span style="font-weight:normal;">Upewniamy się że będzie on wskazywał na początek pixela. Do poszcególnych wartości można się dostać po przez operator indeksowy.</span></span></em></div>
<div><em><span style="font-style:normal;"><span style="font-weight:normal;"></p>
<div><em><strong> void SetColor(</strong></em><em><strong>,</strong></em><em><strong>Color color)</strong></em></div>
<div><em><strong> {</strong></em></div>
<div><em><strong> </strong></em><em><strong>_current[0]=  color.R;</strong></em></div>
<div><em><strong> </strong></em><em><strong>_current </strong></em><em><strong>[1] = color.G;</strong></em></div>
<div><em><strong> </strong></em><em><strong>_current </strong></em><em><strong>[2] = color.B;</strong></em></div>
<div><em><strong> }</strong></em></div>
<div>Przy pobieraniu i ustawianiu pojedyńczego pixela musimy przeskoczyć wskaźnikiem w jego miejsce. Można na przykład zrealizować taką Funkcję.</div>
<div>
<div><strong><em> void GoToXY(int x, int y)</em></strong></div>
<div><strong><em> {</em></strong></div>
<div><strong><em> _current += (x * _pixelSize) + (y * _nWidth);</em></strong></div>
<div><strong><em> }</em></strong></div>
<div>Po wykonaniu takiej operacji warto ustawić nasz wskaźnik _current na początek Bitmapy ;]. Jeżeli już skończymy zabawę z naszą Bitmapką należy Unlockować miejsce w pamięci.</div>
</div>
<div><strong><em> _bmp.UnlockBits(_bmd);</em></strong></div>
<p></span></span></em>
<p>&#160;</p>
</div>
</div>
<div><span style="font-weight:normal;"><br />
</span></div>
<div><span style="font-weight:normal;">Plusy:<br />
- Szybkość<br />
Minusy:</p>
<p>-Mniej czytelny kod<br />
-Trochę więcej kombinowania z implementaćją</p>
<p>- kod jest niezarządzany</p>
<p><strong>3.Porównanie obu podejść</strong></p>
<p><strong><br />
</strong></p>
<p><strong>GetPixelSetPixel:</strong></p>
<p><strong><span style="font-weight:normal;"> </span></strong></p>
<p>Pobranie jednego Pixela (30k razy)  &#8212;&#8212;&#8212;&#8212;-  157 ms</p>
<p>Ustawienie jednego Pixela(30k razy) &#8212;&#8212;&#8212;&#8212;-153 ms</p>
<p>Pokolorowanie całej Bitmapy(100 razy 100&#215;100) &#8212;&#8212;&#8212;&#8212;1496 ms</p>
<p><strong>GDI:</strong></p>
<p>Pobranie jednego Pixela (30k razy)  &#8212;&#8212;&#8212;&#8212;-  21 ms</p>
<p>Ustawienie jednego Pixela(30k razy) &#8212;&#8212;&#8212;&#8212;- 15ms</p>
<p>Pokolorowanie całej Bitmapy(100 razy 100&#215;100) &#8212;&#8212;&#8212;&#8212; 226ms</p>
<p><a href="http://lammichalfranc.wordpress.com/files/2009/11/wykresikbmp1.jpg"><img class="alignnone size-full wp-image-55" title="wykresikBmp1" src="http://lammichalfranc.wordpress.com/files/2009/11/wykresikbmp1.jpg" alt="" width="450" height="278" /></a></p>
<p>Jak widać zysk z zastosowania metody 2 daje 7 krotny wzrost wydajności.</p>
<p>W dziale pliki umiesiłem Cały projekt do ściągnięcia zawierający prostą implementację obu metod wraz z przypadkami testowymi napisanymi w NUnit (Opis tego projektu zamieszczę w części 2)</p>
<p>Wkrótce przetestuję dodatkowo dostęp przez XNA bo ponoć jest szybszy od GDI ;] Zobaczymy.</p>
<p><strong><em>C.D.N.</em></strong></p>
<p>&#160;</p>
<p></span></div>
<p><span style="font-weight:normal;"><br />
</span></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[The Sustainable by Design Challenge ]]></title>
<link>http://hpigreen.com/2009/11/16/the-sustainable-by-design-challenge/</link>
<pubDate>Mon, 16 Nov 2009 21:44:38 +0000</pubDate>
<dc:creator>hpigreen</dc:creator>
<guid>http://hpigreen.com/2009/11/16/the-sustainable-by-design-challenge/</guid>
<description><![CDATA[A recent article by Ajay Garde has been published in the October 2009 issue of the Journal of the Am]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>A recent article by <a href="http://socialecology.uci.edu/faculty/agarde" target="_blank">Ajay Garde</a> has been published in the October 2009 issue of <a href="http://www.informaworld.com/smpp/section?content=a914017852&#38;fulltext=713240928" target="_blank">the Journal of the American Planning Association</a>).  The article describes a study and analysis of projects that applied for 2007 <a href="http://www.usgbc.org/DisplayPage.aspx?CMSPageID=148" target="_blank">LEED-ND pilot program certification</a>.  LEED-ND is a rating system written collaboratively by the U.S. Green Building Council (USGBC), the <a href="http://www.usgbc.org/DisplayPage.aspx?CMSPageID=148" target="_blank">Congress for the New Urbanism (CNU)</a>, and the <a href="http://www.nrdc.org/" target="_blank">Natural Resources Defense Council (NRDC)</a> to promote sustainable development patterns and practices.  The following is an excerpt from a JAPA press release:</p>
<p>According to author Ajay Garde, the LEED-ND committee has taken “the technical credentials of LEED and the criteria of New Urbanism for neighborhood design and created LEED-ND.” This approach may undermine the use of green criteria, as developers may focus on New Urbanist criteria instead.  These drawbacks mean that LEED-ND is suitable as a supplement to, but not as a replacement for, local planning for sustainability that considers projects on a case-by-case basis within the local context.</p>
<p>My interpretation of Mr. Garde’s article is that LEED-ND is a great start, but it may not be the only answer to ensuring the absolute best development practices.  Likewise, typical Best Management Practices (BMPs) for stormwater quality alone within a sprawl setting do not necessarily equal the best solution for a sustainable future…but they too are a good start.</p>
<p>One of the conclusions in the study suggests that LEED-ND certification is weighted more heavily for projects based on their location, layout and density with less emphasis on green infrastructure and technology.  Mr. Garde suggests “that more points should be awarded for criteria such as solar orientation, onsite renewable energy sources, and other criteria from the green construction and technology category that contribute to energy and water efficiency.”  I agree. Couldn’t we have well designed projects in appropriate locations that incorporate green infrastructure and technology?</p>
<p>Often in the real estate business, developers will look for the proverbial low-hanging fruit.  If a developer can attain LEED-ND certification by Smart Location &#38; Linkage and Neighborhood Pattern &#38; Design with minimal emphasis on Green Infrastructure &#38; Building, it’s probably safe to assume many will choose that route. Development costs vs. value and profit (short term vs. long term) are considered.  Government regulations and entitlements are also a part of the equation.</p>
<p>LEED-ND is a voluntary and market-driven rating system. If a developer has a choice of developing in an urban area with more regulations but the incentive (faster approval times, increased density, etc.) of attaining LEED-ND certification or higher vs. developing in a suburban area with less regulation, which will they choose?  This will continue to play out as the economy recovers.</p>
<p>How do government officials and agencies, planners and non-profits create either market-driven incentives, government regulations or a combination of both to ensure future development is as sustainable as possible in terms of social aspects, economics, and the balance between natural and man-made environments?</p>
<p>These are the questions and this is the challenge moving forward, but it’s comforting to know that progress is being made every day.</p>
<p><a href="http://www.hawkinspartners.com/people/brian-hudson" target="_self">-Brian Hudson</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Self Portrait in Illustrator]]></title>
<link>http://jordandscott.wordpress.com/2009/11/14/self-portrait-in-illustrator/</link>
<pubDate>Sat, 14 Nov 2009 05:19:52 +0000</pubDate>
<dc:creator>jordandscott</dc:creator>
<guid>http://jordandscott.wordpress.com/2009/11/14/self-portrait-in-illustrator/</guid>
<description><![CDATA[]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img class="aligncenter size-full wp-image-228" title="DD16_T2_2D_Graphics_AI_Self_Portrait_JordanScott" src="http://jordandscott.wordpress.com/files/2009/11/dd16_t2_2d_graphics_ai_self_portrait_jordanscott2.jpg" alt="DD16_T2_2D_Graphics_AI_Self_Portrait_JordanScott" width="604" height="452" /></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[View Sonic introduces VPD 400 MovieBook]]></title>
<link>http://newshyderabad.wordpress.com/2009/11/12/view-sonic-introduces-vpd-400-moviebook/</link>
<pubDate>Thu, 12 Nov 2009 16:52:16 +0000</pubDate>
<dc:creator>seoforever</dc:creator>
<guid>http://newshyderabad.wordpress.com/2009/11/12/view-sonic-introduces-vpd-400-moviebook/</guid>
<description><![CDATA[View Sonic, a manufacturer and provider of visual technology, has introduced its new VPD 400 MovieBo]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>View Sonic, a manufacturer and provider of visual technology, has introduced its new VPD 400 MovieBook, all-in-one portable entertainment player that enables users to watch HD movies, listen to music, view photo albums, read digital books or even record voice memos at a very affordable price.</p>
<p><a rel="attachment wp-att-5757" href="http://newshyderabad.wordpress.com/2009/11/12/view-sonic-introduces-vpd-400-moviebook/viewsonic-vpd/"><img class="aligncenter size-full wp-image-5757" title="viewSonic-VPD" src="http://newshyderabad.wordpress.com/files/2009/11/viewsonic-vpd.jpg" alt="viewSonic-VPD" width="300" height="264" /></a></p>
<p> Stylish and ultra thin Viewsonic VD400 comes with 4.3-inch screen (800 x 480), larger screen format with HD 720p. It has wide range of video, photo and audio format compatibilities, which includes JPEG, BMP, PNG, GIF, AVI, RM/RMVB, FLV, MP4, MOV, PMP, MPG, VOD, DAT, H.264, H.263, MP3, WMA, WAV, FLAC, APE, OGG</p>
<p> The device comes with internal memory (NAND Flash Memory) of 8GB. In addition, Viewsonic VPD400 also supports micro SD cards slot for expandable storage.</p>
<p> The VD400 has long battery life (1800mAH Li-Ion), which supports playback of up to 12 hours (audio), 6 hours (video), and 3 hours HD video on a single charge. The device weighs only 0.3 lb. (140 g).</p>
<p> The VPD400 MovieBook is compatible with Windows® 98/2000/SE/ME/XP/Vista and available at a price tag of $129.99.</p>
<p> The firstreporter</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Galerias Street Fighter]]></title>
<link>http://oldgameszine.wordpress.com/2009/11/01/galerias-street-fighter/</link>
<pubDate>Mon, 02 Nov 2009 02:31:52 +0000</pubDate>
<dc:creator>colimar</dc:creator>
<guid>http://oldgameszine.wordpress.com/2009/11/01/galerias-street-fighter/</guid>
<description><![CDATA[As antigas revistas brasileiras que falavam de videogame, por mais que hoje em dia saibamos que não ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:center;"><a href="http://www.sfgalleries.net/"><img class="alignnone size-large wp-image-3582" title="guile" src="http://oldgameszine.wordpress.com/files/2009/11/guile.jpg?w=442" alt="guile" width="265" height="614" /></a><a href="http://www.creativeuncut.com/game-art-galleries.html"><img class="alignnone size-large wp-image-3583" title="ssf2x-sagat" src="http://oldgameszine.wordpress.com/files/2009/11/ssf2x-sagat.jpg?w=365" alt="ssf2x-sagat" width="219" height="614" /></a></p>
<p>As antigas revistas brasileiras que falavam de videogame, por mais que hoje em dia saibamos que não eram lá grande coisa, tinham por sua própria natureza acesso à arte oficial dos jogos (tipo essa aí em cima) e usavam essas imagens para ilustrar suas matérias, capas e pôsters. Scanners e computadores eram extremamente caros e aí nós pobres mortais ficávamos dependentes de papel carbono e a boa vontade de amigos que sabiam desenhar pra conseguir algumas coisas parecidas. Naturalmente que essas imagens agora estão aí pela internet, então não perca mais tempo: clique no Sagat e visite uma página só com galerias de Street Fighter ou então clique no Guile e visite uma outra com milhões de artes de outros jogos, arquivos perfeitos para serem usados na surdina naquela impressoa poderosa lá da universidade/escola num A3 couché. Além do valor nostálgico, claro.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Corredor: 'El sector sabe lo necesario que es liberar el stock y que el Gobierno ha puesto los medios para ello']]></title>
<link>http://elinformadorinmobiliario.wordpress.com/2009/11/01/corredor-el-sector-sabe-lo-necesario-que-es-liberar-el-stock-y-que-el-gobierno-ha-puesto-los-medios-para-ello/</link>
<pubDate>Sun, 01 Nov 2009 10:49:55 +0000</pubDate>
<dc:creator>elinformadorinmobiliario</dc:creator>
<guid>http://elinformadorinmobiliario.wordpress.com/2009/11/01/corredor-el-sector-sabe-lo-necesario-que-es-liberar-el-stock-y-que-el-gobierno-ha-puesto-los-medios-para-ello/</guid>
<description><![CDATA[La ministra asegura que los últimos datos dejan entrever una tendencia a la estabilización en el mer]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><strong>La ministra asegura que los últimos datos dejan entrever una tendencia a la estabilización en el mercado inmobiliario </strong></p>
<p><strong>Se muestra convencida de que gran parte de promotores y constructores aprovecharán los instrumentos que el Gobierno está poniendo para crear un nuevo modelo de crecimiento más estable y sostenible</strong></p>
<p>&#160;</p>
<p><strong>Barcelona, 27 de octubre de 2009.-</strong>  La ministra de Vivienda, <strong>Beatriz Corredor</strong>, ha asegurado hoy que &#8220;el sector inmobiliario sabe, mejor que nadie, lo necesario que es liberar el stock de viviendas acumulado. Y el Gobierno, como también sabe el sector, ya ha puesto en marcha numerosas medidas para facilitar su drenaje&#8221;.</p>
<p>La ministra de Vivienda ha inaugurado la 13ª edición de Barcelona Meeting Point (BMP) que se celebra en la Ciudad Condal hasta el próximo 1 de noviembre. En el transcurso del acto de inauguración se ha hecho entrega de los premios de BMP, entre ellos el premio especial a la Entidad Estatal de Suelo, SEPES, dependiente del Ministerio de Vivienda, por su 50 aniversario, como un instrumento fundamental en el desarrollo económico y reequilibrio territorial pero además con un valor añadido a sus actuaciones: el de la sostenibilidad.</p>
<p>En su intervención, Corredor ha destacado las dos medidas más importantes del Ministerio para facilitar la salida del excedente de viviendas libres: su conversión en viviendas protegidas y el fomento de un mercado del alquiler competitivo y profesionalizado.</p>
<p>Así, ha recordado la flexibilización de los requisitos para convertir vivienda libre en protegida, dando también acceso a ella a las familias de rentas medidas, o la línea de cobertura para vivienda protegida por la que el Ministerio asume la mitad del riesgo de cada nueva hipoteca para vivienda protegida para garantizar que 100.000 familias puedan obtener su crédito &#8220;de forma que su menor capacidad de endeudamiento no les coloque en una situación de desventaja frente a los que compran su vivienda en el mercado libre&#8221;, ha asegurado.</p>
<p>&#8220;Otra vía para dar salida al excedente es poner esas viviendas en alquiler&#8221;, ha dicho Corredor, y entre las medidas puestas en marcha por el Gobierno para fomentar este mercado ha citado la recuperación de la deducción fiscal por alquiler que a partir de 2011 se igualará a la deducción por compra. También ha mencionado la mejora en la tributación del alquiler con opción de compra y el Proyecto de Ley de medidas de fomento y agilización procesal del alquiler, aprobado ya por el Senado para dar más agilidad a los procesos judiciales de desahucio e impago de rentas salvaguardando los derechos de los inquilinos de buena fe.</p>
<p><strong>El momento actual del sector inmobiliario</strong></p>
<p>La ministra ha explicado que &#8220;hemos atravesado una época en la que la única palabra que se ha utilizado para caracterizar al mercado inmobiliario ha sido desplome. Ahora, con toda la prudencia que exige el análisis de un proceso cambiante, algunos indicadores conocidos desde el verano parecen apuntar a que más bien podríamos empezar a hablar de estabilización para referirnos al sector de la vivienda&#8221;.</p>
<p>Así, se ha referido a la mejora de las ventas en un 8% en el segundo trimestre o el incremento de las viviendas iniciadas, sobre todo las protegidas, que subieron en un 25%. &#8220;Los datos dejan entrever una tendencia a la estabilización del mercado producida en buena medida por la caída histórica de los tipos de interés de las hipotecas pero también por la moderación de los precios producida hasta ahora&#8221;, ha asegurado.</p>
<p>Asimismo, Corredor ha apuntado que &#8220;el descenso de los precios es una buena oportunidad también para los inversores extranjeros que deseen adquirir una vivienda en España. A esta ventaja se añade que nuestro país cuenta con una extraordinaria seguridad jurídica gracias a un excelente sistema registral&#8221;.</p>
<p><strong>Hacia un nuevo modelo de crecimiento también en la construcción</strong></p>
<p><strong> </strong><br />
Beatriz Corredor ha subrayado que &#8220;España necesita cambiar su modelo productivo si quiere aprovechar la salida de la crisis y el inicio de la recuperación para afianzar un crecimiento económico más sostenible y duradero. Para ello tendremos que hacer reformas porque no vamos a prescindir de ninguno de los sectores tradicionales, como el de la construcción, que han generado empleo y riqueza pero, para seguir creciendo de una forma equilibrada, tendrán que adaptarse al nuevo modelo de economía sostenible que estamos impulsando Los Presupuestos Generales del Estado y la Ley de Economía Sostenible son los grandes instrumentos del Gobierno para ese cambio de modelo excesivamente dependiente del ladrillo por otro basado en el conocimiento, la investigación científica e industrial, los avances tecnológicos, las energías renovables, el ahorro energético y la lucha contra el cambio climático&#8221;.</p>
<p>En este sentido, la ministra se ha referido a la rehabilitación, especialmente la energética, como el ámbito en el que la construcción puede desarrollar estas nuevas potencialidades en un campo inmenso de actividad.</p>
<p>Corredor ha concluido asegurando que &#8220;el sector de la construcción tiene que seguir contribuyendo al crecimiento de la economía pero también es importante sacar lecciones de lo ocurrido y no repetir los errores. Por eso, es fundamental asegurar un desarrollo equilibrado y sostenible evitando que vuelva a producirse un sobredimensionamiento y un encarecimiento de la vivienda como el que hemos sufrido. Sé que gran parte del sector ya lo ha entendido y estoy segura que trabajará con el Gobierno para que, entre todos, sentemos las bases de un nuevo modelo de crecimiento que generará más empleo y mayor bienestar para todos&#8221;.</p>
<p><strong>Promoción inmobiliaria en derecho de superficie</strong></p>
<p><strong> </strong><br />
La ministra de Vivienda también ha inaugurado hoy la jornada Promoción inmobiliaria en derecho de superficie, que se desarrolla en el Symposium de BMP, destacando que &#8220;el derecho de superficie es una institución jurídica que se ha mostrado como una buena opción en los momentos en los que los ciudadanos tienen una mayor dificultad a la hora de acceder a una vivienda&#8221;.</p>
<p>Corredor ha explicado que el propósito del derecho de superficie, y por lo tanto, de los actuales esfuerzos legislativos para favorecer su operatividad, es facilitar la edificación, mejorando su financiación y haciéndola menos gravosa porque resta el valor de repercusión del suelo; diversificar y dinamizar las ofertas en el mercado inmobiliario y facilitar el acceso de los ciudadanos a la vivienda así como evitar la especulación en edificios y terrenos.</p>
<p>La ministra ha relatado las últimas modificaciones al respecto que van desde la posible constitución del derecho de superficie no sólo sobre suelos sino también sobre edificios o sobre elementos privativos de ellos, tales como viviendas o locales de negocio, hasta la ampliación de la duración del derecho hasta los 99 años pasando por la posibilidad de que sean admitidos en garantía hipotecaria de los préstamos que sirvan de cobertura a las emisiones de bonos hipotecarios, ser objeto de participaciones hipotecarias o servir para el cálculo del límite de emisión de las cédulas hipotecarias.</p>
<p>&#160;</p>
<p><a title="Infochannel. Running news on air" href="http://www.infochannel.es">Infochannel. Running news on air</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Fiamma Tricolore e Partito Nazionale Europeo]]></title>
<link>http://msdfli.wordpress.com/2009/10/31/fiamma-tricolore-e-partito-nazionale-europeo/</link>
<pubDate>Sat, 31 Oct 2009 16:35:23 +0000</pubDate>
<dc:creator>msdfli</dc:creator>
<guid>http://msdfli.wordpress.com/2009/10/31/fiamma-tricolore-e-partito-nazionale-europeo/</guid>
<description><![CDATA[Visita in Ungheria il 24 Ottobre 2009 del Segretario Nazionale On. Luca Romagnoli Il Segretario Nazi]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:center;">
<p style="text-align:center;"><img class="aligncenter size-full wp-image-140" title="fiamma tricolore" src="http://msdfli.wordpress.com/files/2009/06/logo_per_download.jpg" alt="fiamma tricolore" width="337" height="337" /></p>
<p style="text-align:center;">
<h3 style="text-align:center;"><strong>Visita in Ungheria il 24 Ottobre 2009 </strong></h3>
<h3 style="text-align:center;"><strong>del Segretario Nazionale On. Luca Romagnoli</strong></h3>
<p><strong> </strong></p>
<p style="text-align:justify;">Il Segretario Nazionale della Fiamma Tricolore On. Luca Romagnoli sarà a Budapest dal 23 al 25 ottobre per partecipare alle celebrazioni della rivolta d&#8217;Ungheria contro l&#8217;occupazione comunista del 1956.</p>
<p style="text-align:justify;">Nella giornata di sabato 24 ottobre vi sarà poi la firma del &#8220;Programma Comune&#8221; ovvero il documento che ufficializza l&#8217;accordo fra i più significativi Movimenti Nazionali d&#8217;Europa e che avvia il percorso verso la creazione di un unico Partito Politico a Livello Europeo.</p>
<p style="text-align:justify;">
<p style="text-align:justify;"><span style="text-decoration:underline;">Ecco il testo nella versione italiana:</span></p>
<p style="text-align:justify;">
<h3 style="text-align:center;"><strong>Progetto di Dichiarazione Politica</strong></h3>
<h3 style="text-align:center;"><strong> </strong></h3>
<h3 style="text-align:center;"><strong>Alleanza dei Movimenti Nazionali Europei</strong></h3>
<p style="text-align:justify;">
<p style="text-align:justify;">
<p style="text-align:justify;">
<p style="text-align:justify;">Coscienti della loro comune responsabilità verso i popoli Europei e delle diversità culturali e linguistiche che essi rappresentano,</p>
<p style="text-align:justify;">
<p style="text-align:justify;">Attenti agli inalienabili valori della civilizzazione cristiana, del diritto naturale, della pace e della libertà in Europa,</p>
<p style="text-align:justify;">
<p style="text-align:justify;">Tenendo presente le numerose minacce che le potenti forze del mondialismo ci contrappongono.</p>
<p style="text-align:justify;">
<p style="text-align:justify;">Noi, rappresentanti dei partiti e dei movimenti nazionali in Europa, chiediamo:</p>
<p style="text-align:justify;">
<p style="text-align:justify;">
<p style="text-align:justify;">
<p style="text-align:justify;">La creazione di un&#8217;Europa di nazioni libere, uguali e indipendenti nel quadro di una confederazione di stati sovrani che si dovranno astenere dal prendere decisioni sugli argomenti che possono essere meglio trattati a livello nazionale.</p>
<p style="text-align:justify;">
<p style="text-align:justify;">Il rifiuto di ogni tentativo di generare un Super-Stato europeo.</p>
<p style="text-align:justify;">
<p style="text-align:justify;">la promozione della libertà, della dignità e dell&#8217;uguaglianza dei diritti di tutti i cittadini nonché l&#8217;opposizione a tutte le forme di totalitarismo.</p>
<p style="text-align:justify;">
<p style="text-align:justify;">Il primato del voto diretto dei cittadini o dei loro rappresentanti eletti su qualsiasi decisione presa dagli organismi amministrativi o burocratici.</p>
<p style="text-align:justify;">
<p style="text-align:justify;">Una protezione efficace dell&#8217;Europa contro le nuove minacce, quali il terrorismo, cosi come l&#8217;imperialismo politico, economico o religioso.</p>
<p style="text-align:justify;">
<p style="text-align:justify;">La risoluzione, attraverso condizioni pacifiche e umane, del problema dell&#8217;immigrazione in particolare per mezzo della cooperazione internazionale rivolta allo sviluppo e alla autosufficienza dei paesi del terzo mondo.</p>
<p style="text-align:justify;">
<p style="text-align:justify;">Forti politiche in favore delle famiglie volte a riassorbire il deficit demografico dell&#8217;Europa e promuovere i valori tradizionali della nostra società.</p>
<p style="text-align:justify;">
<p style="text-align:justify;">La preservazione della diversità in Europa tale e quale risulta dalla varietà di identità, di tradizioni, di lingue e di culture indigene.</p>
<p style="text-align:justify;">
<p style="text-align:justify;">La lotta comune dei popoli europei contro il dumping sociale e gli effetti distruttivi del mondialismo.</p>
<p style="text-align:justify;">
<p style="text-align:justify;">
<p><a href="http://www.fiammatricolore.com/news.php?id=177">http://www.fiammatricolore.com/news.php?id=177</a></p>
<p style="text-align:justify;">
<p style="text-align:justify;">
<p style="text-align:justify;">
<p style="text-align:justify;"><em>Documento firmato da</em>:</p>
<p style="text-align:justify;">
<p><strong>Walloon MP of the Belgian National Front Pierre-Patrick Cocriamont,</strong></p>
<p><strong>Chairman of Fiamma Tricolore Luca Romagnoli of Italy,</strong></p>
<p><strong>Chairman of For A Better Hungary Movement &#8220;Jobbik&#8221; party Gabor Vona of Hungary,</strong></p>
<p><strong>Vice Chairman of the French National Front Bruno Gollnisch</strong></p>
<p><strong>Chairman of the Swedish National Democrats Mark Abramsson</strong></p>
<p style="text-align:justify;">
<p style="text-align:center;"><img class="aligncenter size-medium wp-image-1270" title="Jobbik-cimer Nagy" src="http://msdfli.wordpress.com/files/2009/07/jobbik-cimer-nagy.jpg?w=210" alt="Jobbik-cimer Nagy" width="210" height="300" /></p>
<h3 style="text-align:center;"><strong>La «grande alleanza» del lato oscuro d&#8217;Europa</strong></h3>
<p><strong> </strong></p>
<p style="text-align:justify;">L&#8217;estrema destra europea, cerca casa. Sabato a Budapest è nata <strong>l&#8217;Alleanza dei movimenti nazionalisti europei</strong>, unione di intenti tra ciò che di più nero si muove nel vecchio continente. Primo passo in vista della creazione di un vero e proprio partito paneuropeo, il tutto al grido di «<em>no alla Turchia</em>», «<em>no ad un&#8217;Europa federale</em>» e sì alla «<em>difesa della famiglia e dei valori tradizionali</em>», si legge nella dichiarazione finale.</p>
<p style="text-align:justify;">Anche per gli immigrati c&#8217;è poco spazio.</p>
<p style="text-align:justify;">Presenti nella capitale magiara il <strong>Front National Francese</strong> e quello <strong>Vallone</strong>, la <strong>Fiamma</strong><strong> Tricolore</strong><strong> italiana</strong> e i <strong>Nazional democratici svedesi</strong>.</p>
<p style="text-align:justify;">Anfitrione, nonché animatore dell&#8217;iniziativa, Gabor Vona, padre padrone di <strong>Jobbik</strong>, «i Migliori», partito che alle scorse europee ha sfiorato il 15% dei voti. Vona controlla anche una milizia paramilitare, <strong>la  Guardia</strong><strong> ungherese</strong>, specializzatasi nel contrasto alla «criminalità gitana». È stato lui ad annunciare l&#8217;Alleanza, che conta <strong>anche sull&#8217;appoggio del potente British National Party</strong>, Bnp, vera sorpresa alle elezioni di giugno con un 8,3% di suffragi e due rappresentanti a Strasburgo. Il Bnp non era presente a Budapest ma è al «100% dietro l&#8217;iniziativa», afferma Zoltran Balczo, vicepresidente di Jobbik.</p>
<p style="text-align:justify;">
<p style="text-align:justify;">
<p style="text-align:justify;">Oltre a questi sei partiti, anche <strong>una mezza intesa con l&#8217;Fpo austriaco</strong>, la prima creatura di Jorg Haider, i cui rappresentanti erano attesi a Budapest.</p>
<p style="text-align:justify;">Altri contatti ci sono con gruppi di estrema destra spagnoli, mentre <strong>sono fuori i bulgari di Ataka, i rumeni di Romania Mare e il Partito nazionalista slovacco</strong>. Per il primo potrebbe essere solo una questione di tempo, maggiori i problemi con romeni e slovacchi: «<em>Non partecipiamo in alcuna alleanza con partiti che hanno posizioni scioviniste contro i cittadini ungheresi</em>», afferma Balczo.</p>
<p style="text-align:justify;">Discorso simile <strong>per i potenti fiamminghi del Vlaams Belang</strong>: difficile vederli assieme al Front National Vallone. Divisioni che dimostrano come le unioni a destra siano sempre conflittuali.</p>
<p style="text-align:justify;"><strong>Il gruppo Its, Identità, tradizione e sovranità</strong>, nato al Parlamento europeo nel gennaio 2008, è durato il volgere di 10 mesi, rotto dalle parole di Alessandra Mussolini, allora eurodeputata, contro i rumeni, che provocarono la rabbiosa reazione di Romania Mare e la fine del sodalizio.</p>
<p style="text-align:justify;">Oggi i partiti riuniti a Budapest non hanno i numeri per formare un nuovo gruppo a Strasburgo (ci vogliono 25 deputati di 7 paesi diversi), anche perché, oltre ai litigi, alcune formazioni, come la Fiamma tricolore, in Europa non esistono. Perciò si pensa per il futuro ad una struttura più leggera, un partito, separato da un gruppo parlamentare e dalle sue rigide regole. Il tutto mentre le ultime votazioni, su tutte quella strettissima sulla libertà di informazione in Italia e in altri stati membri, mostrano che di fronte ad un quasi pareggio tra centro destra e centro sinistra, siano proprio i non-iscritti, in gran parte di estrema destra, a decidere le sorti dell&#8217;Europarlamento.</p>
<p style="text-align:justify;">
<p style="text-align:justify;">
<p style="text-align:justify;"><a href="http://www.ilmanifesto.it/il-manifesto/argomenti/numero/20091028/pagina/08/pezzo/263358/">http://www.ilmanifesto.it/il-manifesto/argomenti/numero/20091028/pagina/08/pezzo/263358/</a></p>
<p style="text-align:center;">
<p style="text-align:justify;">
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Fight for rights of Greenland's gems]]></title>
<link>http://c5company.wordpress.com/2009/10/26/fight-for-rights-of-greenlands-gems/</link>
<pubDate>Mon, 26 Oct 2009 17:12:51 +0000</pubDate>
<dc:creator>Meghan</dc:creator>
<guid>http://c5company.wordpress.com/2009/10/26/fight-for-rights-of-greenlands-gems/</guid>
<description><![CDATA[Greenland, the world&#8217;s largest island, is a self‐governing Danish province located between the]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><strong>Greenland, the world&#8217;s largest island, is a self‐governing Danish province located between the Arctic and Atlantic Oceans, East of the Canadian Arctic. Many gemstones have been found in Greenland including diamonds, rubies, and pink sapphires to name just a few. The past several years have marked a complicated struggle of the mineral resources between the government and the indigeous people.</strong></p>
<p>In 1966, ruby was first discovered in West Greenland. In 2004, True North Gems (TNG), a medium-sized Canadian mining company, obtained an exclusive exploration license of a 3600 square kilometer area.</p>
<p>The fight for native mineral rights in Greenland gained momentum and public attention when William Rohtert, a geologist and gemologist from Los Angeles and who had worked for TNG, got involved. Rohtert had deep empathy for the Greenland marginalized people, particularly for the Inuit. He is of Native American ancestry and this coupled with his professional skills made him ideally positioned to help the artisanal miners in their struggle against the Danish.</p>
<p>With the help of Rohtert, the indigenous people including Niels Madsen, learned how to professionally prospect, facet and polish gems. He also imparted true knowledge of their wealth and value, which created conflict with True North Gems and the Danish run Bureau for Minerals and Petroleum (BMP).</p>
<p>On the 16th of August, 2007, Madsen and friends went to protest their rights in law by prospecting ruby on the TNG exploration site. In Danish mineral law TNG had no exploitation license that would have granted them exclusivity and therefore had no legal power to stop the protest.</p>
<p>TNG called in the BMP to arrest and confiscate the ruby collected by Niels and his four friends. This action by BMP was not strictly lawful, but the lack of accountability meant that they had the power.</p>
<p>This injustice catalyzed the creation of the 16th August Union, which takes its name from the infamous date the miners were arrested. The arrest led to an island wide clamp down on all indigenous local people having rights to gem mining.</p>
<p>The 16th August Union is Greenland’s first official small-scale miners association. The aim of the union is to work with the with the Danish Bureau for Minerals and Petroleum (BMP) to reach a fair agreement that allows indigenous people right to the land.</p>
<p>Since then, the BMP have ignored reasoned argument for responsible small scale mining. They have hired lawyers to construct erroneous interpretations of Danish laws to cover up their behavior and to protect the vested interests of TNG.</p>
<p><strong>More information about Greenland&#8217;s fight for gem rights is available at </strong><a href="http://www.FairJewelry.org"><strong>FairJewelry.org</strong></a><strong>.</strong></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Interpolation (Resizing) of a Bitmap image]]></title>
<link>http://innovativesolution.wordpress.com/2009/10/20/interpolation-resizing-of-a-bitmap-image/</link>
<pubDate>Tue, 20 Oct 2009 03:59:29 +0000</pubDate>
<dc:creator>Sijo</dc:creator>
<guid>http://innovativesolution.wordpress.com/2009/10/20/interpolation-resizing-of-a-bitmap-image/</guid>
<description><![CDATA[#define PADBYTES 4 int Interpolation(BYTE* pbySrc, BYTE* pbyDest, int iSrcWidth, int iSrcHeight, int]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><pre>#define PADBYTES 4
int Interpolation(BYTE* pbySrc, BYTE* pbyDest, int iSrcWidth, int iSrcHeight, int iSrcBPP, int iDestWidth, int iDestHeight)
{  
 //process each line
 for (int iRow = 0; iRow &#60; iDestHeight; iRow++)
 {
 double ay = (double) iRow * iSrcHeight / iDestHeight;    //scaled source iRow
 int     y = (int)ay;                                    //truncates source iRow
 ay = ay - y;                                        //distance as fractional part of the scaled pixel, used for weighting

 //process each pixel within the line
 for (int iCol = 0; iCol &#60; iDestWidth; iCol++)
 {
 double R, G, B;

 double ax = (double)iCol * iSrcWidth / iDestWidth;    //scaled source column
 int     x = (int)ax;                                //truncates source column
 ax = ax - x;                                    //distance as fractional part of the scaled pixel, used for weighting

 if ((x &#60; iSrcWidth - 1) &#38;&#38; (y &#60; iSrcHeight - 1))
 {
 //interpolate each channel
 R = (1.0 - ax) * (1.0 - ay) * GetValueR(x+0, y+0, iSrcWidth, iSrcHeight, pbySrc) +
 ax  * (1.0 - ay) * GetValueR(x+1, y+0, iSrcWidth, iSrcHeight, pbySrc) +
 (1.0 - ax) *        ay  * GetValueR(x+0, y+1, iSrcWidth, iSrcHeight, pbySrc) +
 ax  *        ay  * GetValueR(x+1, y+1, iSrcWidth, iSrcHeight, pbySrc);

 G = (1.0 - ax) * (1.0 - ay) * GetValueG(x+0, y+0, iSrcWidth, iSrcHeight, pbySrc) +
 ax  * (1.0 - ay) * GetValueG(x+1, y+0, iSrcWidth, iSrcHeight, pbySrc) +
 (1.0 - ax) *        ay  * GetValueG(x+0, y+1, iSrcWidth, iSrcHeight, pbySrc) +
 ax  *        ay  * GetValueG(x+1, y+1, iSrcWidth, iSrcHeight, pbySrc);

 B = (1.0 - ax) * (1.0 - ay) * GetValueB(x+0, y+0, iSrcWidth, iSrcHeight, pbySrc) +
 ax  * (1.0 - ay) * GetValueB(x+1, y+0, iSrcWidth, iSrcHeight, pbySrc) +
 (1.0 - ax) *        ay  * GetValueB(x+0, y+1, iSrcWidth, iSrcHeight, pbySrc) +
 ax  *        ay  * GetValueB(x+1, y+1, iSrcWidth, iSrcHeight, pbySrc);
 }
 else
 {
 //set to zero to blank these lines instead of copying source
 R = pbySrc[y * iSrcWidth * iSrcBPP + x * iSrcBPP + 0];
 G = pbySrc[y * iSrcWidth * iSrcBPP + x * iSrcBPP + 1];
 B = pbySrc[y * iSrcWidth * iSrcBPP + x * iSrcBPP + 2];
 }

 //write to destination buffer, change order for BGR
 *pbyDest++ = (BYTE)R;
 *pbyDest++ = (BYTE)G;
 *pbyDest++ = (BYTE)B;
 }

 int iPad = (iDestWidth * 3) % PADBYTES ? PADBYTES - (iDestWidth * 3) % PADBYTES : 0;
 for (int idx = 0; idx &#60; iPad; idx++)
 {
 *pbyDest++ = 0;
 }
 }
 return 0;
}
</pre>
<p>pbySrc      -&#62; Source Buffer<br />
pbyDest     -&#62; Destination Buffer<br />
iSrcWidth   -&#62; Source Image Width<br />
iSrcHeight  -&#62; Source Image Height<br />
iSrcBPP     -&#62; Bytes per pixel od the source Image<br />
iDestWidth  -&#62; New width of the image<br />
iDestHeight -&#62; New Height of the Image</p>
<p>NB: The memory allocation for the new image should be allocated. the Bytes per pixel of the new image is 3. For the other function used here please refer the previous posts.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[To Change the Sharpness of R, G,B values of a Pixel of the image]]></title>
<link>http://innovativesolution.wordpress.com/2009/10/16/to-change-the-sharpness-of-r-gb-values-of-a-pixel-of-the-image/</link>
<pubDate>Fri, 16 Oct 2009 09:32:19 +0000</pubDate>
<dc:creator>Sijo</dc:creator>
<guid>http://innovativesolution.wordpress.com/2009/10/16/to-change-the-sharpness-of-r-gb-values-of-a-pixel-of-the-image/</guid>
<description><![CDATA[int SetSharpnessR(int iX, int iY, int iWidth, int iHeight, int iBPP, BYTE *pbySrc, double dbSharpnes]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><pre>int SetSharpnessR(int iX, int iY, int iWidth, int iHeight, int iBPP, BYTE *pbySrc, double dbSharpnessR)
{
 int MaskMatrix[3][3] ={{1,  1,  1}, {1, -8,  1}, {1,  1,  1} };
 double dbPixelValueR = 0.0;
 int i, j, iRed;

 for (j = -1; j &#60;2 ; j++)
 {
 for (i = -1; i &#60;2 ; i++)
 {
 dbPixelValueR += MaskMatrix[j+1][i+1] * GetValueR(iX+j, iY+i, iWidth, iHeight, iBPP, pbySrc);
 }
 }
 iRed = (int)(GetValueR(iX, iY, iWidth, iHeight, iBPP, pbySrc) - (dbSharpnessR * dbPixelValueR));
 return Clip(iRed);
}

int SetSharpnessG(int iX, int iY, int iWidth, int iHeight, int iBPP, BYTE *pbySrc, double dbSharpnessG)
{
 int MaskMatrix[3][3] ={{1,  1,  1}, {1, -8,  1}, {1,  1,  1} };
 double dbPixelValueG = 0.0;
 int i, j, iGreen;

 for (j = -1; j &#60;2 ; j++)
 {
 for (i = -1; i &#60;2 ; i++)
 {
 dbPixelValueG += MaskMatrix[j+1][i+1] * GetValueG(iX+j, iY+i, iWidth, iHeight, iBPP, pbySrc);
 }
 }
 iGreen = (int)(GetValueG(iX, iY, iWidth, iHeight, iBPP, pbySrc) - (dbSharpnessG * dbPixelValueG));
 return Clip(iGreen);
}

int SetSharpnessB(int iX, int iY, int iWidth, int iHeight, int iBPP, BYTE *pbySrc, double dbSharpnessB)
{
 int MaskMatrix[3][3] ={{1,  1,  1}, {1, -8,  1}, {1,  1,  1} };
 double dbPixelValueB = 0.0;
 int i, j, iBlue;

 dbPixelValueB = 0.0;

 for (j = -1; j &#60;2 ; j++)
 {
 for (i = -1; i &#60;2 ; i++)
 {
 dbPixelValueB += MaskMatrix[j+1][i+1] * GetValueB(iX+j, iY+i, iWidth, iHeight, iBPP, pbySrc);
 }
 }
 iBlue = (int)(GetValueB(iX, iY, iWidth, iHeight, iBPP, pbySrc) - (dbSharpnessB * dbPixelValueB));
 return Clip(iBlue);
}</pre>
<p>iX                       -&#62; x cordinate of the Pixel<br />
iY                       -&#62; y cordinate of the Pixel<br />
iWidth               -&#62; Width of the Image<br />
iHeight              -&#62; Height of the Image<br />
pbySrc              -&#62; Pointer to the Buffer where image is readed<br />
iBpp                   -&#62; Bytes per pixel<br />
dbSharpnessR  -&#62; New Sharpness value of Red Component of the Pixel<br />
dbSharpnessG  -&#62; New Sharpness value of Green Component of the Pixel<br />
dbSharpnessB  -&#62; New Sharpness value of Blue Component of the Pixel</p>
<p>The Sharpness values should be in the range ie,  iBrightValR, iBrightValG, iBrightValB should be in 0.0 to 0.5<br />
The default value is 0.0.</p>
<p>You can call these functions to the entire pixels of the image for the Sharpness change of the image</p>
<p>NB: For the other functions given here, please refer the previous posts</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[To Change the Contrast of R, G, B values of a Pixel of the image]]></title>
<link>http://innovativesolution.wordpress.com/2009/10/16/to-change-the-contrast-of-r-g-b-values-of-a-pixel-of-the-image/</link>
<pubDate>Fri, 16 Oct 2009 09:19:49 +0000</pubDate>
<dc:creator>Sijo</dc:creator>
<guid>http://innovativesolution.wordpress.com/2009/10/16/to-change-the-contrast-of-r-g-b-values-of-a-pixel-of-the-image/</guid>
<description><![CDATA[int ContrastR(int iX, int iY, int iWidth, int iHeight, int iBPP, BYTE *pbySrc, double dContrastValR)]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><pre>int ContrastR(int iX, int iY, int iWidth, int iHeight, int iBPP, BYTE *pbySrc, double dContrastValR)
{
 int iRed = GetValueR(iX, iY, iWidth, iHeight, iBPP, pbySrc);
 iRed = (int)floor((iRed - GREY) * dContrastValR) + GREY;
 return Clip(iRed);
}

int ContrastG(int iX, int iY, int iWidth, int iHeight, int iBPP, BYTE *pbySrc, double dContrastValG)
{
 int iGreen = GetValueG(iX, iY, iWidth, iHeight, iBPP, pbySrc);
 iGreen = (int)floor((iGreen - GREY) * dContrastValG) + GREY;
 return Clip(iGreen);
}

int ContrastB(int iX, int iY, int iWidth, int iHeight, int iBPP, BYTE *pbySrc, double dContrastValB)
{
 int iBlue = GetValueB(iX, iY, iWidth, iHeight, iBPP, pbySrc);
 iBlue = (int)floor((iBlue - GREY) * dContrastValB) + GREY;
 return Clip(iBlue);
}
</pre>
<p>iX                        -&#62; x cordinate of the Pixel<br />
iY                        -&#62; y cordinate of the Pixel<br />
iWidth                -&#62; Width of the Image<br />
iHeight               -&#62; Height of the Image<br />
pbySrc               -&#62; Pointer to the Buffer where image is readed<br />
iBpp                    -&#62; Bytes per pixel<br />
dContrastValR  -&#62; New Contrast value of Red Component of the Pixel<br />
dContrastValG  -&#62; New Contrast value of Green Component of the Pixel<br />
dContrastValB  -&#62; New Contrast value of Blue Component of the Pixel</p>
<p>The Contrast values should be in the range ie,  iBrightValR, iBrightValG, iBrightValB should be in 0.0 to 4.0<br />
The default value is 1.0.</p>
<p>You can call these functions to the entire pixels of the image for the Contrast change of the image</p>
<p>NB: For the other functions given here, please refer the previous posts</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[To Change the brightness of a Pixel of the image]]></title>
<link>http://innovativesolution.wordpress.com/2009/10/16/to-change-the-brightness-of-a-pixel-of-the-image/</link>
<pubDate>Fri, 16 Oct 2009 08:48:04 +0000</pubDate>
<dc:creator>Sijo</dc:creator>
<guid>http://innovativesolution.wordpress.com/2009/10/16/to-change-the-brightness-of-a-pixel-of-the-image/</guid>
<description><![CDATA[int BrightnessR(int iX, int iY, int iWidth, int iHeight, int iBPP, BYTE* pbySrc, int iBrightValR) { ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><pre>int BrightnessR(int iX, int iY, int iWidth, int iHeight, int iBPP, BYTE* pbySrc, int iBrightValR)
{
 return Clip(GetValueR(iX, iY, iWidth, iHeight, iBPP, pbySrc) + iBrightValR);
}

int BrightnessG(int iX, int iY, int iWidth, int iHeight, int iBPP, BYTE *pbySrc, int iBrightValG)
{
 return Clip(GetValueG(iX, iY, iWidth, iHeight, iBPP, pbySrc) + iBrightValG);
}

int BrightnessB(int iX, int iY, int iWidth, int iHeight, int iBPP, BYTE *pbySrc, int iBrightValB)
{
 return Clip(GetValueB(iX, iY, iWidth, iHeight, iBPP, pbySrc) + iBrightValB);
}
</pre>
<p>iX                   -&#62; x cordinate of the Pixel<br />
iY                   -&#62; y cordinate of the Pixel<br />
iWidth           -&#62; Width of the Image<br />
iHeight          -&#62; Height of the Image<br />
pbySrc          -&#62; Pointer to the Buffer where image is readed<br />
iBpp               -&#62; Bytes per pixel<br />
iBrightValR   -&#62; New Brightness value of Red Component of the Pixel<br />
iBrightValG   -&#62; New Brightness value of Green Component of the Pixel<br />
iBrightValB   -&#62; New Brightness value of Blue Component of the Pixel</p>
<p>The Brightness values should be in the range ie,  iBrightValR, iBrightValG, iBrightValB should be in -128 to +128.<br />
The default value is 0.</p>
<p>You can call these functions to the entire pixels of the image for the Brightness change of the image</p>
<p>NB: For the other functions given here, please refer the previous posts</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Grafikbunker.de - kostenlos Bilder und Fotos in das Internet laden]]></title>
<link>http://manga303.wordpress.com/2009/10/15/grafikbunker-de-kostenlos-bilder-und-fotos-in-das-internet-laden/</link>
<pubDate>Thu, 15 Oct 2009 16:17:17 +0000</pubDate>
<dc:creator>manga303</dc:creator>
<guid>http://manga303.wordpress.com/2009/10/15/grafikbunker-de-kostenlos-bilder-und-fotos-in-das-internet-laden/</guid>
<description><![CDATA[Grafikbunker | Kostenlos Bilder ins Internet laden und link verteilen Wer kennt es nicht &#8220;zeig]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="display:block;width:448px;font:normal normal normal 13px/18px Tahoma, Arial, Helvetica, sans-serif;float:left;margin:0 0 16px 31px;padding:0;">
<div id="attachment_124" class="wp-caption alignnone" style="width: 356px"><img class="size-full wp-image-124" title="Grafikbunker &#124; Kostenlos Bilder ins Internet laden und link verteilen" src="http://manga303.wordpress.com/files/2009/10/grafikbunker-kostenlos-bilder-ins-internet-laden-und-link-verteilen.jpg" alt="Grafikbunker &#124; Kostenlos Bilder ins Internet laden und link verteilen" width="346" height="264" /><p class="wp-caption-text">Grafikbunker &#124; Kostenlos Bilder ins Internet laden und link verteilen</p></div>
<p style="display:block;width:448px;font:normal normal normal 13px/18px Tahoma, Arial, Helvetica, sans-serif;float:left;margin:0 0 16px 31px;padding:0;">
<p style="display:block;width:448px;font:normal normal normal 13px/18px Tahoma, Arial, Helvetica, sans-serif;float:left;margin:0 0 16px 31px;padding:0;">Wer kennt es nicht &#8220;zeig doch mal ein Bild davon ?&#8221; genau in diesem moment ist der Grafikbunker eine <span style="font:normal normal bold 13px/18px Tahoma, Arial, Helvetica, sans-serif;color:#d30000;background-color:#f8f7ee;margin:0;padding:0;">unkomplizierte</span> und <span style="font:normal normal bold 13px/18px Tahoma, Arial, Helvetica, sans-serif;color:#d30000;background-color:#f8f7ee;margin:0;padding:0;">anonyme</span> Möglichkeit nicht gleich seine Adresse zu präsentieren.</p>
<p style="display:block;width:448px;font:normal normal normal 13px/18px Tahoma, Arial, Helvetica, sans-serif;float:left;margin:0 0 16px 31px;padding:0;">Deine Fotos, Bilder, Pics oder Zeichnungen einfach auf Grafikbunker.de laden, dann Freunden und Bekannten den Link geben. Prima sind auch der einbau in dein <span style="font:normal normal bold 13px/18px Tahoma, Arial, Helvetica, sans-serif;color:#d30000;background-color:#f8f7ee;margin:0;padding:0;">Myspace Profil</span> oder Foren.</p>
<p style="display:block;width:448px;font:normal normal normal 13px/18px Tahoma, Arial, Helvetica, sans-serif;float:left;margin:0 0 16px 31px;padding:0;">Der Foto upload ist super leicht : Unten die Datei auswählen und auf &#8220;Bild Hochladen&#8221; klicken. In wenigen Sekunden hast du deinen Privaten Link für deine Bilder. Du kannst deine Fotos auch <span style="font:normal normal bold 13px/18px Tahoma, Arial, Helvetica, sans-serif;color:#d30000;background-color:#f8f7ee;margin:0;padding:0;">Öffentlich</span> machen um sie mit anderen Grafikbunker Usern zu teilen.</p>
<p style="display:block;width:448px;font:normal normal normal 13px/18px Tahoma, Arial, Helvetica, sans-serif;float:left;margin:0 0 16px 31px;padding:0;">Keine Angst! Grafikbunker gibt keine deiner Privaten-Daten weiter und alles ist wirklich kostenlos, umsonst, gratis</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Format Factory, Konversi Untuk Semua File]]></title>
<link>http://apdnsemarang.wordpress.com/2009/10/14/format-factory-konversi-untuk-semua-file/</link>
<pubDate>Wed, 14 Oct 2009 16:20:21 +0000</pubDate>
<dc:creator>galuh</dc:creator>
<guid>http://apdnsemarang.wordpress.com/2009/10/14/format-factory-konversi-untuk-semua-file/</guid>
<description><![CDATA[Dengan banyaknya gadget multimedia dengan dukungan file yang puluhan jenisnya, maka kadangkala konve]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:justify;"><a href="http://apdnsemarang.wordpress.com/files/2009/10/format-factory-interface1.jpg"><img class="aligncenter size-medium wp-image-2090" title="Format Factory Interface" src="http://apdnsemarang.wordpress.com/files/2009/10/format-factory-interface1.jpg?w=300" alt="Format Factory Interface" width="300" height="215" /></a>Dengan banyaknya gadget multimedia dengan dukungan file yang puluhan jenisnya, maka kadangkala konversi file menjadi sebuah kebutuhan yang tak terelakkan.  Belum lagi untuk kepentingan yang bersifat khusus yang mengharuskan kita  mengubah jenis file yang kian hari kian beragam jumlah dan jenisnya.</p>
<p style="text-align:justify;">Katakanlah, untuk <strong>file video</strong> dikenal beberapa jenis.  Mulai dari mp4,  3gp, flv, avi, wmv, dan sebagainya .  Sedangkan untuk <strong>file audio</strong> dikenal mp3, wma, flac, aac, amr dan sebagainya.  Celakanya, tidak semua player bisa mengeksekusi dan menjalankan file tersebut dengan baik.  Belum lagi f<strong>ormat  gambar</strong> yang jenisnya semakin beragam, misalnya JPG, PNG, BMP, ICO dan lain-lain yang kesemuanya membutuhkan penanganan dengan komprehensif yang -sekali lagi- kadangkala diperlukan konversi ke jenis tertentu agar bisa dibaca dan dijalankan oleh player atau perangkat yang kita miliki.</p>
<p style="text-align:justify;">Ada puluhan bahkan ratusan perangkat lunak aplikasi untuk konversi file, baik yang gratis maupun yang berbayar yang bisa kita temukan, akan tetapi kebanyakan (terutama yang gratis) belum mendukung banyak format sekaligus. Kalau toh ada, <em>interface</em>nya relatif sulit dan file aplikasinya besar sekalipun keluarannya berkualitas baik.</p>
<p style="text-align:justify;">Sebagai referensi untuk anda pertimbangkan, berikut ini kami perkenalkan <a href="http://www.4shared.com/file/140857249/e08426c3/Format_Factory_All____media_converter_.html">Format Factory, All Files Converter, yang dapat anda download disini</a> atau di situs reminya di http://www.formatoz.com/download.html.  File ini berekstensi <strong>rar</strong> dengan ukuran <strong>18,057 KB</strong>.  Oleh karena itu, di komputer anda harus terlebih dahulu terintal <strong>WinRAR, WinZIP, 7Zip</strong> atau yang sejenisnya untuk membongkar f<strong>ile rar Format Factory</strong> tersebut.</p>
<p style="text-align:justify;">Software <a href="http://www.4shared.com/file/140857249/e08426c3/Format_Factory_All____media_converter_.html">Format Factory, All Files Converter</a> ini dapat mengkonversi  hampir semua file Viedo, Audio, Images, DVD/CD ROM Tool, Iso, Merge (Penggabung) Video, audio dsb.</p>
<p>Instalasi dan Aplikasi</p>
<ol>
<li>Download <a href="http://www.4shared.com/file/140857249/e08426c3/Format_Factory_All____media_converter_.html">Format Factory, All Files Converter</a>.</li>
<li>Buka / doble klik / Ekstrak hasil download dalam bentuk rar tersebut.</li>
<li>Buka / dobel klik FF Setup 1.70.exe</li>
<li>Tentukan direktori instalasi dengan mengklik browse (atau <strong>biarkan saja</strong>, karena secara otomatis akan terinstal di C:\Program files\Format factory)</li>
<li>Pilih / klik <strong>Install</strong> dan biarkan proses instalasi berjalan.</li>
<li>Jika sukses, anda akan berhadapan dengan <a href="http://apdnsemarang.files.wordpress.com/2009/10/format-factory-interface.jpg">interface seperti ini</a></li>
<li>Di Bar bagian atas anda bisa menentukan <strong>bahasa</strong> (termasuk antarmuka <strong>bahasa Indonesia</strong>)</li>
<li>Di bagin kiri dapat anda pilih berbagai jenis file video, audio, gambar dan sebagainya.</li>
<li>Selanjutnya, kami persilahkan anda untuk mengeksplorasi dan merasakan kemudahan yang datawarkan oleh Format Factory.</li>
</ol>
<p>Selamat mencoba&#8230;&#8230;&#8230;&#8230;&#8230;.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[To Change the Gamma of R, G,B values of a Pixel of the image]]></title>
<link>http://innovativesolution.wordpress.com/2009/10/14/to-change-the-gama-value-of-a-pixel-of-an-image/</link>
<pubDate>Wed, 14 Oct 2009 13:36:01 +0000</pubDate>
<dc:creator>Sijo</dc:creator>
<guid>http://innovativesolution.wordpress.com/2009/10/14/to-change-the-gama-value-of-a-pixel-of-an-image/</guid>
<description><![CDATA[#define MAXVAL          255.0 #define GAMMACONSTANT   1 int SetGammaR(int iX, int iY, int iWidth, in]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><pre>#define MAXVAL          255.0
#define GAMMACONSTANT   1
int SetGammaR(int iX, int iY, int iWidth, int iHeight, int iBPP, BYTE *pbySrc, double dbGammaR)
{
 double dbR = (double)(GetValueR(iX, iY, iWidth, iHeight, iBPP, pbySrc) / MAXVAL);
 dbR = pow (dbR, dbGammaR);
 dbR = dbR &#62; GAMMACONSTANT ? dbR - GAMMACONSTANT : dbR;
 return((int) (dbR * MAXVAL));
}

int SetGammaG(int iX, int iY, int iWidth, int iHeight, int iBPP, BYTE *pbySrc, double dbGammaG)
{
 double dbG = (double)(GetValueG(iX, iY, iWidth, iHeight, iBPP, pbySrc) / MAXVAL);
 dbG = pow (dbG, dbGammaG);
 dbG = dbG &#62; GAMMACONSTANT ? dbG - GAMMACONSTANT : dbG;
 return((int) (dbG * MAXVAL));
}

int SetGammaB(int iX, int iY, int iWidth, int iHeight, int iBPP, BYTE *pbySrc, double dbGammaB)
{
 double dbB = (double)(GetValueB(iX, iY, iWidth, iHeight, iBPP, pbySrc) / MAXVAL);
 dbB = pow (dbB, dbGammaB);
 dbB = dbB &#62; GAMMACONSTANT ? dbB - GAMMACONSTANT : dbB;
 return((int) (dbB * MAXVAL));
}
</pre>
<p>iX                    -&#62; x cordinate of the Pixel<br />
iY                    -&#62; y cordinate of the Pixel<br />
iWidth           -&#62; Width of the Image<br />
iHeight          -&#62; Height of the Image<br />
pbySrc           -&#62; Pointer to the Buffer where image is readed<br />
iBpp               -&#62; Bytes per pixel<br />
dbGammaR  -&#62; New Gamma value of Red Component of the Pixel<br />
dbGammaG  -&#62; New Gamma value of Green Component of the Pixel<br />
dbGammaB  -&#62; New Gamma value of Blue Component of the Pixel</p>
<p>The Gamma values should be in the range ie,  dbGammaR,  dbGammaG,  dbGammaB should be in 0.0 to 4.00<br />
The default value is 1.0.</p>
<p>You can call these functions to the entire pixels of the image for the Gamma change of the image</p>
<p>NB: For the other functions given here, please refer the previous posts</p>
<pre>
</pre>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[To Change the Saturation of R, G, B values of a Pixel of the image]]></title>
<link>http://innovativesolution.wordpress.com/2009/10/14/to-change-the-saturation-of-a-pixel-of-an-image/</link>
<pubDate>Wed, 14 Oct 2009 13:24:39 +0000</pubDate>
<dc:creator>Sijo</dc:creator>
<guid>http://innovativesolution.wordpress.com/2009/10/14/to-change-the-saturation-of-a-pixel-of-an-image/</guid>
<description><![CDATA[#define REDCONSTANT     0.299 #define GREENCONSTANT   0.587 #define BLUECONSTANT    0.114 #define LU]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><pre>#define REDCONSTANT     0.299
#define GREENCONSTANT   0.587
#define BLUECONSTANT    0.114
#define LUMALIMIT       219.0/255.0
#define LUMAVAL         16
int SetSaturationR(int iX, int iY, int iWidth, int iHeight, int iBPP, BYTE *pbySrc, double dbSaturationR)
{
 double dbLum = 0.0;
 dbLum = (( (REDCONSTANT * GetValueR(iX, iY, iWidth, iHeight, iBPP, pbySrc)) + (GREENCONSTANT * GetValueG(iX, iY, iWidth, iHeight, iBPP, pbySrc))  + (BLUECONSTANT * GetValueB(iX, iY, iWidth, iHeight, iBPP, pbySrc))) * LUMALIMIT ) + LUMAVAL;
 return(Clip((int)(dbLum + (( GetValueR(iX, iY, iWidth, iHeight, iBPP, pbySrc)  - dbLum ) * dbSaturationR ))));
}

int SetSaturationG(int iX, int iY, int iWidth, int iHeight, int iBPP, BYTE *pbySrc, double dbSaturationG)
{
 double dbLum = 0.0;
 dbLum = (( (REDCONSTANT * GetValueR(iX, iY, iWidth, iHeight, iBPP, pbySrc)) + (GREENCONSTANT * GetValueG(iX, iY, iWidth, iHeight, iBPP, pbySrc))  + (BLUECONSTANT * GetValueB(iX, iY, iWidth, iHeight, iBPP, pbySrc))) * LUMALIMIT ) + LUMAVAL;
 return (Clip((int)(dbLum + (( GetValueG(iX, iY, iWidth, iHeight, iBPP, pbySrc)- dbLum ) * dbSaturationG ))));
}

int SetSaturationB(int iX, int iY, int iWidth, int iHeight, int iBPP, BYTE *pbySrc, double dbSaturationB)
{
 double dbLum = 0.0;
 dbLum = (( (REDCONSTANT * GetValueR(iX, iY, iWidth, iHeight, iBPP, pbySrc)) + (GREENCONSTANT * GetValueG(iX, iY, iWidth, iHeight, iBPP, pbySrc))  + (BLUECONSTANT * GetValueB(iX, iY, iWidth, iHeight, iBPP, pbySrc))) * LUMALIMIT ) + LUMAVAL;
 return (Clip((int)(dbLum + (( GetValueB(iX, iY, iWidth, iHeight, iBPP, pbySrc) - dbLum ) * dbSaturationB ))));
}</pre>
<p>iX                        -&#62; x cordinate of the Pixel<br />
iY                        -&#62; y cordinate of the Pixel<br />
iWidth                -&#62; Width of the Image<br />
iHeight               -&#62; Height of the Image<br />
pbySrc               -&#62; Pointer to the Buffer where image is readed<br />
iBpp                    -&#62; Bytes per pixel<br />
dbSaturationR  -&#62; New Saturation value of Red Component of the Pixel<br />
dbSaturationG  -&#62; New Saturation value of Green Component of the Pixel<br />
dbSaturationB  -&#62; New Saturation value of Blue Component of the Pixel</p>
<p>The Saturation values should be in the range ie,  iBrightValR, iBrightValG, iBrightValB should be in 0.0 to 2.00<br />
The default value is 1.00.</p>
<p>You can call these functions to the entire pixels of the image for the Saturation change of the image</p>
<p>NB: For the other functions given here, please refer the previous posts</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[To get the R, G, B values of a pixel from a packed or interlaced frame]]></title>
<link>http://innovativesolution.wordpress.com/2009/10/14/to-get-the-r-g-b-values-of-a-pixel-from-a-packed-or-interlaced-frame/</link>
<pubDate>Wed, 14 Oct 2009 13:01:14 +0000</pubDate>
<dc:creator>Sijo</dc:creator>
<guid>http://innovativesolution.wordpress.com/2009/10/14/to-get-the-r-g-b-values-of-a-pixel-from-a-packed-or-interlaced-frame/</guid>
<description><![CDATA[#define BCHANNEL 0 #define GCHANNEL 1 #define RCHANNEL 2 unsigned char Clip(int iVal) { return ( iVa]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><pre>#define BCHANNEL 0
#define GCHANNEL 1
#define RCHANNEL 2
unsigned char Clip(int iVal)
{
 return ( iVal &#62; 255 ? 255 : ( iVal &#60; 0 ) ? 0 : iVal) ;
}

//Pixel Functions
int GetValue(int iX, int iY, int iImageWidth, int iImageHeight, int iChannel, int iBPP, BYTE *pbySrc)
{
 Clip(iX);
 Clip(iY);
 return pbySrc[iY * iImageWidth * iBPP + iX * iBPP + iChannel];
}

int GetValueR(int iX, int iY, int iImageWidth, int iImageHeight, int iBPP, BYTE *pbySrc)
{
 return GetValue(iX, iY, iImageWidth, iImageHeight, RCHANNEL, iBPP,pbySrc);
}

int GetValueG(int iX, int iY, int iImageWidth, int iImageHeight, int iBPP, BYTE *pbySrc)
{
 return GetValue(iX, iY, iImageWidth, iImageHeight, GCHANNEL, iBPP, pbySrc);
}

int GetValueB(int iX, int iY, int iImageWidth, int iImageHeight, int iBPP, BYTE *pbySrc)
{
 return GetValue(iX, iY, iImageWidth, iImageHeight, BCHANNEL, iBPP, pbySrc);
}
</pre>
<p>Here the iX and iY values are the pixel positions<br />
iImageWidth  -&#62; Width of the Image<br />
iImageHeight -&#62; Height of the Image<br />
iBPP                -&#62; Bytes per pixel ie bitsperPixel/8. For eg. RGB 24 it is 3.<br />
pbySrc            -&#62; Address of the Source buffer</p>
<p>Call the GetValueR() for Red value of a pixel, Call the GetValueG() for Green value of a pixel and Call the GetValueB() for Blue value of a pixel from your application.</p>
<p>NB: These functions are applicatoion for interlaced fromat or packed RGB formats and not for the planar formats</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[MakeUp Pilot — программа для простого ретуширования фотографий]]></title>
<link>http://franzsoft.wordpress.com/2009/10/14/makeup-pilot-%e2%80%94-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%b0-%d0%b4%d0%bb%d1%8f-%d0%bf%d1%80%d0%be%d1%81%d1%82%d0%be%d0%b3%d0%be-%d1%80%d0%b5%d1%82%d1%83%d1%88%d0%b8%d1%80%d0%be%d0%b2/</link>
<pubDate>Wed, 14 Oct 2009 07:18:33 +0000</pubDate>
<dc:creator>g&amp;t</dc:creator>
<guid>http://franzsoft.wordpress.com/2009/10/14/makeup-pilot-%e2%80%94-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%b0-%d0%b4%d0%bb%d1%8f-%d0%bf%d1%80%d0%be%d1%81%d1%82%d0%be%d0%b3%d0%be-%d1%80%d0%b5%d1%82%d1%83%d1%88%d0%b8%d1%80%d0%be%d0%b2/</guid>
<description><![CDATA[Смотришь в зеркало – вроде ничего, красавчик, а как сфотографируешь сам себя – ужаснешься. Там пятно]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div>
<p style="text-align:center;"><img class="aligncenter" src="http://demoblog.ru/wp-content/uploads/2009/03/tiaurus0503.jpg" border="0" alt="tiaurus-0503" width="425" height="293" /></p>
<p>Смотришь в зеркало – вроде ничего, красавчик, а как сфотографируешь сам себя – ужаснешься. Там пятно, тут морщины,<!--more--> весенние прыщи, веснушки, да и просто круги под глазами от недосыпа. Что делать? Воспользоваться отличной утилитой, с помощью которой можно убрать все эти дефекты, выдав желаемое за действительное.</p>
<p><span id="more-4373"> </span></p>
<p>Программа предназначена для работы прежде всего с фотографиями. Я попробовал – действительно качественно работает.</p>
<p>Скриншот работы до:</p>
<p style="text-align:center;"><img class="aligncenter" src="http://demoblog.ru/wp-content/uploads/2009/03/tiaurus0501.jpg" border="0" alt="tiaurus-0501" width="339" height="187" /></p>
<p>и после:</p>
<p style="text-align:center;"><img class="aligncenter" src="http://demoblog.ru/wp-content/uploads/2009/03/tiaurus0502.jpg" border="0" alt="tiaurus-0502" width="344" height="204" /></p>
<p>Она дает возможность не только быстро удалять веснушки, морщинки, дефекты кожи, но и создавать макияж и восстанавливать старые фотографии. В ней есть помимо функций ретуширования и базовый функционал фото-редакторов: изменение яркости и контрастности, обрезка, поворот, отражение, изменение размера. Программа понимает файлы в форматах bmp, tiff, jpeg и png. Для любителей фотошопа приятный сюрприз – утилита может быть использована как плагин (кстати, поддерживается работа на уровне плагина и в других редакторах). Можно скачать и попробовать демонстрационную версию, которая лишена возможности сохранения в стандартные форматы рисунков (только в свой). Пруфлинк: <a title="http://www.colorpilot.ru/makeup.html" href="http://www.colorpilot.ru/makeup.html">http://www.colorpilot.ru/makeup.html</a>.</p>
</div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Tracking &amp; Mitigating Nitrigen Deposition in Rocky Mountain National Park]]></title>
<link>http://livestockandenvironment.wordpress.com/2009/10/13/tracking-mitigating-nitrigen-deposition-in-rocky-mountain-national-park/</link>
<pubDate>Tue, 13 Oct 2009 15:53:32 +0000</pubDate>
<dc:creator>csuile</dc:creator>
<guid>http://livestockandenvironment.wordpress.com/2009/10/13/tracking-mitigating-nitrigen-deposition-in-rocky-mountain-national-park/</guid>
<description><![CDATA[[Source: Jessica Davis, Ag Woman &amp; Risk, Issue 3, Fall 2009]  Sheep Lake at Rocky Mountain Natio]]></description>
<content:encoded><![CDATA[[Source: Jessica Davis, Ag Woman &amp; Risk, Issue 3, Fall 2009]  Sheep Lake at Rocky Mountain Natio]]></content:encoded>
</item>
<item>
<title><![CDATA[Image Files and Facebook Apps - TechStuff Podcast Roundup]]></title>
<link>http://blogs.howstuffworks.com/2009/10/09/image-files-and-facebook-apps-techstuff-podcast-roundup/</link>
<pubDate>Fri, 09 Oct 2009 14:58:16 +0000</pubDate>
<dc:creator>Jonathan Strickland</dc:creator>
<guid>http://blogs.howstuffworks.com/2009/10/09/image-files-and-facebook-apps-techstuff-podcast-roundup/</guid>
<description><![CDATA[Hey there! I&#8217;ve torn myself away from exploring Google Wave to talk about the episodes of Tech]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Hey there! I&#8217;ve torn myself away from exploring Google Wave to talk about the episodes of TechStuff we published this week. I&#8217;ll be sure to post my thoughts about Google Wave in an upcoming <a href="http://computer.howstuffworks.com/internet/social-networking/information/blog.htm">blog</a> post. We may even tackle it as a podcast subject in the near future, so keep your ears open.</p>
<p>In Monday&#8217;s episode, Chris and I talk about the different kinds of image files you&#8217;re likely to encounter in our digital world. What do those file extensions mean? What&#8217;s the difference between a JPEG and a GIF? Does anyone use the BMP file format? Why are some viewable in Web browsers while others aren&#8217;t? When should you use a particular file format? Chris really did the heavy lifting in this episode, educating yours truly about the different file types and why they are important.</p>
<p><a href="http://computer.howstuffworks.com/internet/social-networking/networks/facebook.htm">Facebook</a>, applications and your privacy became the focus of our discussion on Wednesday&#8217;s episode. The social network gathers new users every day, many of whom appear to install each and every app that crosses their paths. Is it a good idea to load up on applications? What about all those quizzes? Are they harmless fun, or could you be sharing your personal information in ways you didn&#8217;t intend? Can an app developer get a look at your information even if you have your profile set to private? Chris and I talk about the risks of installing applications and how you could even expose your friends to unwanted attention.</p>
<p>We continue to receive great feedback and podcast suggestions from our listeners. Please keep those suggestions coming &#8212; we want to cover the topics you&#8217;re interested in. For those of you waiting patiently for an episode on technology conspiracies, we&#8217;re working on it. The topic is huge and we want to do a great job. Got another topic you&#8217;re dying to hear more about? Let us know!</p>
<p>Meanwhile, you can learn more about image files and Facebook over at HowStuffWorks.com:</p>
<p><a href="http://computer.howstuffworks.com/question408.htm">Why are there so many different image formats on the Web?</a><br />
<a href="http://electronics.howstuffworks.com/question570.htm">What are the best settings for e-mailing or printing digital pictures?</a><br />
<a href="http://computer.howstuffworks.com/internet/social-networking/networks/facebook.htm">How Facebook Works</a><br />
<a href="http://computer.howstuffworks.com/internet/social-networking/networks/facebook-quiz.htm">Facebook Quiz</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Auto Save Images from the Clipboard]]></title>
<link>http://jimlawless.wordpress.com/2009/10/05/auto-save-images-from-the-clipboard/</link>
<pubDate>Mon, 05 Oct 2009 23:34:35 +0000</pubDate>
<dc:creator>Jim Lawless</dc:creator>
<guid>http://jimlawless.wordpress.com/2009/10/05/auto-save-images-from-the-clipboard/</guid>
<description><![CDATA[I sometimes need to capture series of screenshots in an ordered sequence. I prefer to avoid having t]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I sometimes need to capture series of screenshots in an ordered sequence.  I prefer to avoid having to click into a utility to save them one at a time.</p>
<p>I wrote the utility pic2file so that I could easily capture these screen images or window images.</p>
<p>Here is the C# source code:</p>
<p><strong>pic2file.cs</strong></p>
<pre class="brush: cpp;">
// pic2file.cs - Automatically save bitmaps on the clipboard
// to the filesystem.
//
// License: MIT / X11
// Copyright (c) 2009 by James K. Lawless
// jimbo@radiks.net http://www.radiks.net/~jimbo
// http://www.mailsend-online.com
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the &#34;Software&#34;), to deal in the Software without
// restriction, including without limitation the rights to use,
// copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following
// conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED &#34;AS IS&#34;, WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
// OTHER DEALINGS IN THE SOFTWARE.

using System ;
using System.Drawing;
using System.Drawing.Imaging;
using System.Threading;
using System.IO;
using System.Windows.Forms;

namespace Pic2File
{
   public class Pic2File
   {
        [STAThread]
	   public static void Main(string[] args)
      {
         ImageFormat fmt;
         string dir,prefix,outputFile,suffix;
         int i;
         int count;
         fmt=ImageFormat.Jpeg;
         suffix=&#34;.jpg&#34;;
         dir=&#34;.\&#34;;
         prefix=&#34;p2f_&#34;;
         bool beep=false;
         count=0;
         Console.WriteLine(
            &#34;\nPic2File by Jim Lawless - jimbo@radiks.net\n&#34;);
         Syntax();        

         for(i=0;i&#60;args.Length;i++)
         {
               // Play a sound when img files are saved
            if(args[i].ToLower().Equals(&#34;-beep&#34;))
            {
               beep=true;
            }
            else
            if(args[i].ToLower().Equals(&#34;-dir&#34;))
            {
               dir=args[i+1];
                  // make sure we have an
                  // ending slash
               if( ! dir.EndsWith(&#34;\&#34;))
                  dir+=&#34;\&#34;;
               i++;
            }
            else
            if(args[i].ToLower().Equals(&#34;-prefix&#34;))
            {
               prefix=args[i+1];
               i++;
            }
            else
            if(args[i].ToLower().Equals(&#34;-gif&#34;))
            {
               fmt=ImageFormat.Gif;
               suffix=&#34;.gif&#34;;
            }
            else
            if(args[i].ToLower().Equals(&#34;-jpg&#34;))
            {
               fmt=ImageFormat.Jpeg;
               suffix=&#34;.jpg&#34;;
            }
            else
            if(args[i].ToLower().Equals(&#34;-png&#34;))
            {
               fmt=ImageFormat.Png;
               suffix=&#34;.png&#34;;
            }
            else
            if(args[i].ToLower().Equals(&#34;-bmp&#34;))
            {
               fmt=ImageFormat.Bmp;
               suffix=&#34;.bmp&#34;;
            }
            else
            if(args[i].ToLower().Equals(&#34;-tiff&#34;))
            {
               fmt=ImageFormat.Tiff;
               suffix=&#34;.tif&#34;;
            }
            else
            {
               Console.WriteLine(&#34;Unknown option &#34; + args[i]);
               return;
            }
         }

            // Write the selected options to the console
         Console.WriteLine(&#34;\nWork directory: &#34; + dir);
         Console.WriteLine(&#34;Filename prefix: &#34; + prefix);
         Console.WriteLine(&#34;Image format: &#34; + suffix);
         Console.WriteLine(&#34;Play beep on save: &#34; + beep );

            // Create the work dir, if necessary
         if( ! Directory.Exists(dir))
         {
            Console.WriteLine(&#34;Creating directory &#34; + dir);
            Directory.CreateDirectory(dir);
         }

            // Now, loop waiting for data to appear on the Clipboard
         Console.WriteLine(&#34;\nWaiting...\n&#34;);
         IDataObject cdata;

         for(;;)
         {
            Thread.Sleep(100);
            Application.DoEvents();

            cdata=Clipboard.GetDataObject();
            if(cdata==null)
               continue;

            if(cdata.GetDataPresent(DataFormats.Bitmap))
            {
                  // Loop until we have a unique filename
               for(;;)
               {
                  outputFile=dir+prefix+count+suffix;
                  if( ! File.Exists(outputFile))
                     break;
                  count++;
               }
               Console.Write(&#34;Saving &#34; + outputFile + &#34; ... &#34; );
               Image im=(Image)cdata.GetData(DataFormats.Bitmap,true);
               im.Save(outputFile,fmt);
               Console.WriteLine(&#34;done.&#34;);
               if(beep)
                  System.Media.SystemSounds.Beep.Play();
               count++;
               Clipboard.Clear();
            }
         }
      }
      public static void Syntax()
      {
         Console.WriteLine(&#34;Syntax:\tPic2File.exe -dir dir_to_store_pics -prefix filename_prefix -beep [ -gif -png -tiff -jpg -bmp ]\n&#34;);
         Console.WriteLine(&#34;The default output format is -jpg.\n&#34;);
      }
   }
}
</pre>
<p>Upon invoking pic2file, you will see:</p>
<pre class="brush: xml;">

Pic2File by Jim Lawless - jimbo@radiks.net

Syntax: Pic2File.exe -dir dir_to_store_pics -prefix filename_prefix -beep [ -gif
 -png -tiff -jpg -bmp ]

The default output format is -jpg.

Work directory: .\
Filename prefix: p2f_
Image format: .jpg
Play beep on save: False

Waiting...
</pre>
<p>If you have an image waiting on the Clipboard or if you press the Print Screen key, you&#8217;ll then see a message that might look like the following:</p>
<pre class="brush: xml;">
Saving .\p2f_0.jpg ... done.
</pre>
<p>Pic2file loops continuously.  It pauses for 100 milliseconds, then tries to pull bitmap image data from the clipboard.  If such data is present, it will save it to an incrementally-numbered file and will conditionally play an audible sound if the <em>-beep </em> option has been specified.</p>
<p>If you right-click an image on a web page and click your browser&#8217;s option to copy the image to the Clipboard, pic2file will also save the image.</p>
<p>Pressing Alt-Print Screen will copy an image of the current window to the Clipboard.  Pic2file will then save this image to a file.</p>
<p>After an image has been saved, pic2file erases the data on the Clipboard.</p>
<p>The source and executable file for pic2file can be downloaded in a single archive at:<br />
<a href="http://www.mailsend-online.com/wp/pic2file.zip">http://www.mailsend-online.com/wp/pic2file.zip</a></p>
<p><a href="http://del.icio.us/post?url=http://jimlawless.wordpress.com/2009/10/05/auto-save-images-from-the-clipboard/&#38;title=Auto+Save+Images+from+the+Clipboard" target="_blank"><img title="del_icio_us" src="http://www.mailsend-online.com/wp/del_icio_us.png" alt="del_icio_us" /></a> <a href="http://del.icio.us/post?url=http://jimlawless.wordpress.com/2009/10/05/auto-save-images-from-the-clipboard/&#38;title=Auto+Save+Images+from+the+Clipboard" target="_blank">Save to del.icio.us</a><br /><a href="http://digg.com/submit?phase=2&#38;url=http://jimlawless.wordpress.com/2009/10/05/auto-save-images-from-the-clipboard/&#38;title=Auto+Save+Images+from+the+Clipboard" target="_blank"><img title="digg" src="http://www.mailsend-online.com/wp/digg.png" alt="digg" /></a> <a href="http://digg.com/submit?phase=2&#38;url=http://jimlawless.wordpress.com/2009/10/05/auto-save-images-from-the-clipboard/&#38;title=Auto+Save+Images+from+the+Clipboard" target="_blank">Digg it</a><br /><a href="http://reddit.com/submit?url=http://jimlawless.wordpress.com/2009/10/05/auto-save-images-from-the-clipboard/&#38;title=Auto+Save+Images+from+the+Clipboard" target="_blank"><img title="reddit" src="http://www.mailsend-online.com/wp/reddit.png" alt="reddit" /></a> <a href="http://reddit.com/submit?url=http://jimlawless.wordpress.com/2009/10/05/auto-save-images-from-the-clipboard/&#38;title=Auto+Save+Images+from+the+Clipboard" target="_blank">Save to Reddit</a><br /><a href="http://www.facebook.com/share.php?u=http://jimlawless.wordpress.com/2009/10/05/auto-save-images-from-the-clipboard/" target="_blank"><img title="facebook" src="http://www.mailsend-online.com/wp/facebook.png" alt="facebook" /></a> <a href="http://www.facebook.com/share.php?u=http://jimlawless.wordpress.com/2009/10/05/auto-save-images-from-the-clipboard/" target="_blank">Share on Facebook</a><br /><a href="http://twitter.com/home?status=Check+out+http://jimlawless.wordpress.com/2009/10/05/auto-save-images-from-the-clipboard/"><img title="twitter" src="http://www.mailsend-online.com/wp/twitter.gif" alt="twitter" /></a> <a href="http://twitter.com/home?status=Check+out+http://jimlawless.wordpress.com/2009/10/05/auto-save-images-from-the-clipboard/" target="_blank">Share on Twitter</a><br /><a href="http://www.addthis.com/bookmark.php?pub=dvd&#38;url=http://jimlawless.wordpress.com/2009/10/05/auto-save-images-from-the-clipboard/;title=Auto+Save+Images+from+the+Clipboard" target="_blank"><img title="aolfav" src="http://www.mailsend-online.com/wp/aolfav.gif" alt="aolfav" /></a> <a href="http://www.addthis.com/bookmark.php?pub=dvd&#38;url=http://jimlawless.wordpress.com/2009/10/05/auto-save-images-from-the-clipboard/;title=Auto+Save+Images+from+the+Clipboard" target="_blank">More bookmarks</a>
<p><img src="http://www.mailsend-online.com/cgi-bin/wphit.pl" /><br />
<em>Unless otherwise noted, all code and text entries are Copyright © 2009 by James K. Lawless</em></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[How to generate font and picture header files]]></title>
<link>http://hackaday.com/2009/09/29/how-to-generate-font-and-picture-header-files/</link>
<pubDate>Tue, 29 Sep 2009 20:00:06 +0000</pubDate>
<dc:creator>Mike Szczys</dc:creator>
<guid>http://hackaday.com/2009/09/29/how-to-generate-font-and-picture-header-files/</guid>
<description><![CDATA[Displaying custom fonts or images on an LCD screen using a microcontroller usually requires quite a ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img class="alignnone size-full wp-image-16331" title="custom_fonts_displayed" src="http://hackadaycom.wordpress.com/files/2009/09/custom_fonts_displayed.jpg" alt="custom_fonts_displayed" width="470" height="285" /></p>
<p>Displaying custom fonts or images on an LCD screen using a microcontroller usually requires quite a bit of work. We&#8217;ve used some readily available tools to make this a bit easier for your next project. Our python script will convert BMP files into a header file ready for use with AVR microcontrollers. We&#8217;ll walk you through it after the break.<!--more--></p>
<p>For this tutorial we will be using the <a href="http://www.gimp.org/">GNU Image Manipulation Program</a> in conjunction with <a href="http://www.python.org/">Python</a>. We are working on an Ubuntu 9.04 system but because these are cross-platform tools you should be able to do this on any OS.</p>
<p><strong>What the script does:</strong></p>
<p>The Python script takes one or more 1-bit color palette indexed <a href="http://en.wikipedia.org/wiki/BMP_file_format">BMP images</a>, cuts out the header and any unused column data, and outputs a header file with the information stored in a one dimensional array in PROGMEM. This data can then be read out of the array and manipulated in the AVR code for use in whatever format you need for your display. This can be used for generating fonts, or converting larger images.</p>
<p><strong>Generate the BMP files:</strong></p>
<p><strong><img class="alignnone size-full wp-image-16332" title="create_new_image" src="http://hackadaycom.wordpress.com/files/2009/09/create_new_image.jpg" alt="create_new_image" width="408" height="307" /></strong></p>
<p>Open the GIMP and create a new file with the dimensions that you require. Height is up to you, but the width should be in multiples of 8 to correspond to the 8-bit wide storage scheme. In this case, we&#8217;re interested in generating a set of fonts that will display in a 24&#215;30 pixel area.</p>
<p><img class="alignnone size-full wp-image-16333" title="centering_character" src="http://hackadaycom.wordpress.com/files/2009/09/centering_character.jpg" alt="centering_character" width="470" height="358" /></p>
<p>Using the font tool, select your desired font and add your character. Adjust the size and location until if fills the canvas. You should make sure that the Antialiasing checkbox of the font tool is not selected.</p>
<p><img class="alignnone size-full wp-image-16334" title="indexed_bmp" src="http://hackadaycom.wordpress.com/files/2009/09/indexed_bmp.jpg" alt="indexed_bmp" width="435" height="437" /></p>
<p>BMP files are saved from bottom to top, <strong>we need to invert the image for our purposes</strong>. Do this by clicking the Image menu, go to Transform, and select &#8220;Flip Vertically&#8221;.  We also need to make this an indexed image. To do so, click on the Image menu at the top, go to Mode and select &#8220;Indexed&#8230;&#8221;. From this menu, choose &#8220;Use black and white(1-bit) palette&#8221;. Now save the file as a BMP image. In our case, we saved it as 4.bmp. Repeat this for each character you wish to include in your new font header file.</p>
<p><strong>Use the script:</strong></p>
<p>Download our <a href="http://blog.mahalo.com/hackaday/misc/bmp2header.zip">bmp2header.py file</a>.</p>
<pre class="brush: bash;">$ python bmp2header.py *.bmp

Please enter how many bytes (8-bits) wide
the image data needs to be:

3

Generating header file with a byte width of: 3 bytes
Successfully generated: my_header.h</pre>
<p>Run the file, with your BMP images as the command line arguments. You will be asked to input the desired column width for the images. Our example image is 24 pixels wide so we want header data to be 3 bytes wide (24-pixels/8-bits = 3 bytes). You can see from the output that my_header.h was successfully created by the script.</p>
<p>Here are the contents of that file (in this case, data for the &#8216;4&#8242; character):</p>
<pre class="brush: cpp;">#include &#60;avr/pgmspace.h&#62;

static const char PROGMEM my_header[]={

//4
0x1f, 0x00, 0x00,
0x3f, 0x80, 0x00,
0x3f, 0x80, 0x00,
0x3f, 0x80, 0x00,
0x3f, 0x80, 0x00,
0x3f, 0x80, 0x00,
0x3f, 0x80, 0x00,
0x3f, 0x80, 0x00,
0x3f, 0x80, 0x00,
0x3f, 0x80, 0x00,
0x3f, 0x80, 0x00,
0x3f, 0x80, 0x00,
0x3f, 0x80, 0x00,
0x3f, 0x80, 0x00,
0x3f, 0x80, 0x00,
0x3f, 0x80, 0x00,
0x3f, 0x80, 0x00,
0x3f, 0x81, 0xfc,
0x3f, 0x81, 0xfc,
0x3f, 0x81, 0xfc,
0x3f, 0xff, 0xfc,
0x3f, 0xff, 0xfc,
0x3f, 0xff, 0xfc,
0x3f, 0xff, 0xfc,
0x00, 0x01, 0xfc,
0x00, 0x01, 0xfc,
0x00, 0x01, 0xfc,
0x00, 0x01, 0xfc,
0x00, 0x01, 0xfc,
0x00, 0x01, 0xfc

};</pre>
<p>In the header file, each BMP that is processed by the script will have its filename appended as a comment before the HEX output. Our data for 4.bmp is displayed in 3 columns of bytes with 30 rows. This matches up with the 24&#215;30 aspect ratio we were looking for.  If you have an output much larger than this, you either didn&#8217;t used a 1-bit indexed image, or something when wrong when the script asked you to input your column width.</p>
<p><strong>Accessing data from the header file:</strong></p>
<p>Covering how to use this header data is beyond the scope of this tutorial. Below is the code we used to write to the display in the image at the top of this article. Our screen is written to by declaring the area we want to write to, then sending a stream of bit data for that area. We provide this for reference purposes only:</p>
<pre class="brush: cpp;">#include my_header.h

void Other_Num(unsigned char num, unsigned char x, unsigned char y)
{
 //Setup screen area for writing:
 LCD_Out(0x2A, 1);
 LCD_Out(x, 0);
 LCD_Out(x+23, 0);
 LCD_Out(0x2B, 1);
 LCD_Out(y, 0);
 LCD_Out(y+29, 0);
 LCD_Out(0x2C, 1);

 unsigned char temp;
 for (unsigned char i=0; i&#60;90; i++)                //Read one column of char at a time
 {
 temp = pgm_read_byte((char *)((int)my_header + (i + (90*num))));    //Get column from progmem

 for (unsigned char k=0; k&#60;8; k++)
 {
 if (temp &#38; 1&#60;&#60;(7-k)) LCD_Out(blue, 0);
 else LCD_Out(white, 0);
 }
 }
}
</pre>
<p><strong>Conclusion</strong></p>
<p>Using this method make generating font sets quit a bit easier. We were able to generate five different numeric sets (0-9) in about 45 mintues. We hope this helps with your next project. Don&#8217;t forget to include pictures of your new fonts in the comments.</p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
