<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Function to make blackness transparent</title>
		<link>http://www.allegro.cc/forums/view/591502</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 22 May 2007 05:01:06 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I have got this function to make black color around a bitmap black. Is it good? Doesent work for me. </p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="k1">void</span> set_trans_bitmap<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bitmap<span class="k2">)</span></td></tr><tr><td class="number">2</td><td><span class="k2">{</span></td></tr><tr><td class="number">3</td><td>    <span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>    <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> t <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> t <span class="k3">&lt;</span> bitmap-&gt;h<span class="k2">;</span> t<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">5</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">6</td><td>        <span class="k1">for</span><span class="k2">(</span>i<span class="k2">;</span> i <span class="k3">&lt;</span> bitmap-&gt;w<span class="k2">;</span> i<span class="k3">+</span><span class="k3">=</span><span class="n">4</span><span class="k2">)</span></td></tr><tr><td class="number">7</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">8</td><td>            <span class="k1">int</span> pixel <span class="k3">=</span> <a href="http://www.allegro.cc/manual/getpixel" target="_blank"><span class="a">getpixel</span></a><span class="k2">(</span>bitmap, i, t<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>            <span class="k1">if</span><span class="k2">(</span>pixel <span class="k3">=</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span></td></tr><tr><td class="number">10</td><td>            <span class="k2">{</span></td></tr><tr><td class="number">11</td><td>                <a href="http://www.allegro.cc/manual/putpixel" target="_blank"><span class="a">putpixel</span></a><span class="k2">(</span>bitmap, i, t, <a href="http://www.allegro.cc/manual/makeacol" target="_blank"><span class="a">makeacol</span></a><span class="k2">(</span><span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>            <span class="k2">}</span></td></tr><tr><td class="number">13</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">14</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">15</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

Im running the game in 32bit mode. Is there a better way at doing this? I guess all the bitmap images must be 32 bit too?</p><p>Thanks!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Vanneto)</author>
		<pubDate>Mon, 21 May 2007 20:01:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Instead of checking if the pixel matches makecol (which it may not if the image has alpha data), check r, g, and b explicitly. Also, unless you&#39;re using the alpha blender, you need to set the pixel to the mask color and use draw_sprite or masked_blit.
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> pixel <span class="k3">=</span> <a href="http://www.allegro.cc/manual/getpixel" target="_blank"><span class="a">getpixel</span></a><span class="k2">(</span>bitmap, i, t<span class="k2">)</span><span class="k2">;</span>
<span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/getr" target="_blank"><span class="a">getr</span></a><span class="k2">(</span>pixel<span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span><span class="k3">=</span> <span class="n">0</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/getg" target="_blank"><span class="a">getg</span></a><span class="k2">(</span>pixel<span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span><span class="k3">=</span> <span class="n">0</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/getb" target="_blank"><span class="a">getb</span></a><span class="k2">(</span>pixel<span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span><span class="k2">)</span>
    <a href="http://www.allegro.cc/manual/putpixel" target="_blank"><span class="a">putpixel</span></a><span class="k2">(</span>bitmap, i, t, <a href="http://www.allegro.cc/manual/bitmap_mask_color" target="_blank"><span class="a">bitmap_mask_color</span></a><span class="k2">(</span>bitmap<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
If you know for sure you&#39;ll have a 32-bit bitmap there, you can use _putpixel32 to speed it up some. Also, you&#39;re not resetting &#39;i&#39; for every row, and you&#39;re skipping three pixels for every one you do.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Mon, 21 May 2007 20:14:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok I edited my loop so its only +1 not +4. I used this function like so:</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>my_pic <span class="k3">=</span> NULL<span class="k2">;</span>
my_pic <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span>sprite_x<span class="k2">]</span>.dat<span class="k2">;</span>
set_trans_bitmap<span class="k2">(</span>my_pic<span class="k2">)</span><span class="k2">;</span>
<a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>my_pic, <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,my_pic-&gt;w,my_pic-&gt;h<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

But it doesent work. Am I doing something wrong?</p><p>Thanks!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Vanneto)</author>
		<pubDate>Mon, 21 May 2007 20:43:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>did you set the color depth before loading the dat file?<br />Have you set the alpha blender somewhere in your code?<br />If not, try changing your code like Kitty Cat suggested. This should do the trick as long as you want to make the black completely transparent and you don&#39;t need any partial transparency.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (spellcaster)</author>
		<pubDate>Mon, 21 May 2007 20:51:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">I said:</div><div class="quote"><p>
set the pixel to the mask color and use draw_sprite or masked_blit
</p></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Tue, 22 May 2007 05:01:06 +0000</pubDate>
	</item>
</rss>
