<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rss [<!ENTITY % HTMLlat1 PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">]>
<rss version="2.0" xml:base="http://sysd.org/stas">
<channel>
 <title>stas&#039;den - graphics</title>
 <link>http://sysd.org/stas/taxonomy/term/6/0</link>
 <description></description>
 <language>en</language>
<item>
 <title>ACFTools+AC3D tutorial</title>
 <link>http://sysd.org/stas/node/47</link>
 <description>&lt;br&gt;
My attempt to show how is it possible to make
&lt;a href=&quot;http://www.x-plane.com/&quot;&gt;X-Plane&lt;/a&gt; models using
&lt;a href=&quot;http://www.ac3d.org/&quot;&gt;AC3D&lt;/a&gt; editor and my
&lt;a href=&quot;http://sysd.org/stas/node/46&quot;&gt;ACFTools&lt;/a&gt;.


&lt;ol&gt;
&lt;li&gt;Open AC3D &lt;code&gt;&lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
Now you shall use &lt;i&gt;Side (ZY)&lt;/i&gt; view to draw a shape of revolution object
to be imported. You may wish to draw it as &lt;i&gt;Polyline&lt;/i&gt;:&lt;br&gt;&lt;br&gt;
&lt;a href=&quot;http://sysd.org/stas/files/active/0/shape.png&quot;&gt;&lt;img title=&quot;(click to enlagre)&quot; src=&quot;http://sysd.org/stas/files/active/0/shape.png&quot; alt=&quot;Object shape&quot; border=&quot;0&quot; height=&quot;514&quot; width=&quot;640&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
Note that the shape polyline has exactly &lt;b&gt;9 vertices&lt;/b&gt; and it is &lt;b&gt;closed&lt;/b&gt;.

&lt;/li&gt;
&lt;li&gt;
&lt;a name=&quot;gap1&quot;&gt;&lt;/a&gt;
Put your shape a bit off-center. You will be revolving it around &lt;i&gt;Y&lt;/i&gt; axis, so
just create &lt;b&gt;small&lt;/b&gt; gap between shape edge and &lt;i&gt;Y&lt;/i&gt; axis:&lt;br&gt;&lt;br&gt;
&lt;img src=&quot;http://sysd.org/stas/files/active/0/gap.png&quot; alt=&quot;First gap&quot; border=&quot;0&quot; height=&quot;248&quot; width=&quot;283&quot;&gt;&lt;br&gt;&lt;br&gt;
Later you will see the meaning of this gap &lt;code&gt;&lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;&lt;/code&gt;

&lt;/li&gt;
&lt;li&gt;
Select your shape as group, and do &lt;i&gt;&quot;Object -&amp;gt; Revolve...&quot;&lt;/i&gt;.
Enter with 180 degrees, &lt;i&gt;Y&lt;/i&gt; axis and 11 segments:&lt;br&gt;&lt;br&gt;
&lt;img src=&quot;http://sysd.org/stas/files/active/0/revolve.png&quot; alt=&quot;Revolve dialog&quot; border=&quot;0&quot; height=&quot;99&quot; width=&quot;281&quot;&gt;&lt;br&gt;&lt;br&gt;
Wow, look, you got half of your object:&lt;br&gt;&lt;br&gt;
&lt;a href=&quot;http://sysd.org/stas/files/active/0/half.png&quot;&gt;&lt;img title=&quot;(click to enlarge)&quot; src=&quot;http://sysd.org/stas/files/active/0/half.png&quot; alt=&quot;One half&quot; border=&quot;0&quot; height=&quot;514&quot; width=&quot;640&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
By default it has &lt;i&gt;flat&lt;/i&gt; surface but you may wish to set a &lt;i&gt;smooth&lt;/i&gt; one
like I did.

&lt;/li&gt;
&lt;li&gt;
Go to &lt;i&gt;Side (XY)&lt;/i&gt; view. Select your object and &lt;i&gt;&quot;Edit -&amp;gt; Duplicate&quot;&lt;/i&gt; it.
Then &lt;i&gt;flip&lt;/i&gt; it on &lt;i&gt;X&lt;/i&gt; axis. Now align both halves so they again have a

&lt;b&gt;very&lt;/b&gt; small gap between them. &lt;u&gt;DO NOT SNAP THEM TOGETHER!&lt;/u&gt;. Then do
&lt;i&gt;&quot;Object -&amp;gt; Merge&quot;&lt;/i&gt;. You should get this:&lt;br&gt;&lt;br&gt;
&lt;a href=&quot;http://sysd.org/stas/files/active/0/both.png&quot;&gt;&lt;img title=&quot;(click to enlagre)&quot; src=&quot;http://sysd.org/stas/files/active/0/both.png&quot; alt=&quot;Both halves&quot; border=&quot;0&quot; height=&quot;514&quot; width=&quot;640&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a name=&quot;gap2&quot;&gt;&lt;/a&gt;
Note &lt;i&gt;&quot;move to&quot;&lt;/i&gt; coordinates. &lt;i&gt;X&lt;/i&gt; is &lt;code&gt;0.53&lt;/code&gt; instead of &lt;code&gt;0.5&lt;/code&gt;!
That &lt;code&gt;0.03&lt;/code&gt; difference on both sides of &lt;i&gt;Y&lt;/i&gt; axis makes that desired gap.&lt;br&gt;

You may be wondering why to have yet another gap here? Well, 18 vertices in each section are
supposed to be sorted &lt;i&gt;automatically&lt;/i&gt; in counter-clockwise order. If you have overlapping
vertices like in this case, algorithm treats vertices with same coordinates as being one vertex
and thus messes everything. Sorry.&lt;br&gt;&lt;br&gt;
&lt;b&gt;VERY IMPORTANT:&lt;/b&gt; switch to &lt;i&gt;vertex&lt;/i&gt; selection mode. You should see &lt;u&gt;exactly&lt;/u&gt;
216 vertices. If you do not have 216 vertices you&#039;re terrible wrong, start over!!!
&lt;/li&gt;
&lt;li&gt;
At this moment you are ready for the most boring part. Split AC3D-generated object to
sections that X-Plane would accept. Now a bit of theory. X-Plane treats all aircraft
models as 3D objects with 12 sections with 18 vertices each one. If you try to feed it
with everything else, surface will be mismapped. Thus you &lt;b&gt;NEED&lt;/b&gt; to cut your AC3D
object into 12 sections with 18 vertices each one. And &lt;code&gt;12 * 18 = 216&lt;/code&gt;, got it?

&lt;code&gt;&lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;&lt;/code&gt;. OK, to start section splitting you need to remove all surfaces. Sorry again &lt;code&gt;&lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;&lt;/code&gt;
&lt;i&gt;&quot;Surface -&amp;gt; Remove surface only&quot;&lt;/i&gt;.
Now hurry up, &lt;i&gt;&quot;File -&amp;gt; Save&quot;&lt;/i&gt; as &lt;code&gt;original.ac&lt;/code&gt;.
&lt;/li&gt;
&lt;li&gt;

Let the pain begin. &lt;code&gt;&amp;gt;%E~&lt;/code&gt;&lt;br&gt;
Go to &lt;i&gt;Plan (XZ)&lt;/i&gt; view. Select 18 vertices:&lt;br&gt;&lt;br&gt;
&lt;a href=&quot;http://sysd.org/stas/files/active/0/section01.png&quot;&gt;&lt;img title=&quot;(click to enlarge)&quot; src=&quot;http://sysd.org/stas/files/active/0/section01.png&quot; alt=&quot;Section #1&quot; border=&quot;0&quot; height=&quot;514&quot; width=&quot;640&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;

&lt;ol&gt;
&lt;li&gt;Copy these vertices to clipboard. Delete them.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&quot;File -&amp;gt; Save&quot;&lt;/i&gt; &lt;code&gt;original.ac&lt;/code&gt;&lt;/li&gt;

&lt;li&gt;&lt;i&gt;&quot;File -&amp;gt; New...&quot;&lt;/i&gt; and paste 18 vertices from clipboard.&lt;/li&gt;
&lt;li&gt;Save as &lt;code&gt;section01.ac&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;br&gt;

Now reopen &lt;code&gt;original.ac&lt;/code&gt;. Select next 18 vertices:&lt;br&gt;&lt;br&gt;
&lt;a href=&quot;http://sysd.org/stas/files/active/0/section02.png&quot;&gt;&lt;img title=&quot;(click to enlarge)&quot; src=&quot;http://sysd.org/stas/files/active/0/section02.png&quot; alt=&quot;Section #2&quot; border=&quot;0&quot; height=&quot;514&quot; width=&quot;640&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;

Do the same steps as for first section, but now save it as &lt;code&gt;section02.ac&lt;/code&gt;.
Unless you are screaming in anger extract all the 12 sections in this way. Calm down,
it&#039;s not &lt;b&gt;that&lt;/b&gt; boring when you start to do it &lt;code&gt;&lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
Understood the meaning of the &lt;a href=&quot;http://sysd.org/stas/node/47#gap1&quot;&gt;first gap&lt;/a&gt;? If you added none, when you
try to select 18 vertices you select 48 each time you reach center, as you select some
central vertices from other sections.
&lt;/li&gt;
&lt;li&gt;
Supposing you were patient enough, at this moment your &lt;code&gt;original.ac&lt;/code&gt; is empty
and you have sections 1 to 12 in separate &lt;code&gt;.ac&lt;/code&gt; files. Now merge them back.
No, I&#039;m not kidding. Merging all sections in sequence from 1 to 12 puts them in the order
that X-Plane accepts. OK, I think that there is no need to explain how to

&lt;i&gt;&quot;File -&amp;gt; Merge..&quot;&lt;/i&gt; 12 section files in one. The result will look the same as
&lt;code&gt;original.ac&lt;/code&gt; (rest in peace) but internal order would be the right one.
You should now &lt;i&gt;&quot;Object -&amp;gt; Merge&quot;&lt;/i&gt; &amp;amp; &lt;i&gt;Group&lt;/i&gt; 216 vertices
(assure that you still have 216!). Call your group &quot;body[45]&quot;, it will import to X-Plane
as &quot;misc. body 1&quot;:&lt;br&gt;&lt;br&gt;

&lt;a href=&quot;http://sysd.org/stas/files/active/0/final.png&quot;&gt;&lt;img title=&quot;(click to enlarge)&quot; src=&quot;http://sysd.org/stas/files/active/0/final.png&quot; alt=&quot;Final result&quot; border=&quot;0&quot; height=&quot;514&quot; width=&quot;640&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
Rescale this object to any size you want (in feets) and save all the stuff as
&lt;code&gt;importable.ac&lt;/code&gt;.
&lt;/li&gt;
&lt;li&gt;
OK, now go and merge &lt;code&gt;importable.ac&lt;/code&gt; in any model of yours using ACFTools:&lt;br&gt;

&lt;pre&gt;acftools -e -acf C:\X-Plane\Aircraft\UPHO.acf -txt UPHO.txt&lt;br&gt;&lt;i&gt;(prepare UPHO.txt to work with)&lt;/i&gt;

acftools -me -ac3d importable.ac -txt UPHO.txt

&lt;i&gt;(merge! don&#039;t worry about warnings)&lt;/i&gt;
&lt;/pre&gt;

Fine! Next step is to edit UPHO.txt in your favorite text editor (I use Write) to mark
that &quot;misc. body 1&quot; was added:

&lt;ol&gt;
&lt;li&gt;
Seek for &lt;code&gt;PARTS_WingBodyGear_part_eq[45]&lt;/code&gt;
and make it &lt;code&gt;&quot;= 1&quot;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
Seek for &lt;code&gt;PARTS_WingBodyGear_body_r[45]&lt;/code&gt;

and set it to desired radius of your body (or Plane-Maker
will mess the things up)
&lt;/li&gt;
&lt;li&gt;
Seek for &lt;code&gt;PARTS_WingBodyGear_body[45][0][0]&lt;/code&gt;.
This was your &lt;code&gt;section01.ac&lt;/code&gt;. Remember the
&lt;a href=&quot;http://sysd.org/stas/node/47#gap2&quot;&gt;second gap&lt;/a&gt;? Remove it setting all the
&lt;i&gt;X&lt;/i&gt; values for 1&lt;sup&gt;st&lt;/sup&gt; section to &lt;code&gt;0&lt;/code&gt;.
Remember that each section has 18 vertices, so, don&#039;t harm neighbor ones!

&lt;/li&gt;
&lt;li&gt;
Seek for &lt;code&gt;PARTS_WingBodyGear_body[45][11][0]&lt;/code&gt;.
This was your &lt;code&gt;section12.ac&lt;/code&gt;. Make the same as for
section 1 &lt;code&gt;&lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;pre&gt;acftools -g -txt UPHO.txt -acf test.acf&lt;br&gt;&lt;i&gt;(generate test.acf from edited .txt file)&lt;/i&gt;
&lt;/pre&gt;

Finally open &lt;code&gt;test.acf&lt;/code&gt; in Plane-Maker and see what the heck you just did
&lt;code&gt;=D&lt;/code&gt;&lt;br&gt;
It may be a bit broken, just fix it in Plane-Maker as normal body.
&lt;/li&gt;
&lt;/ol&gt;
</description>
 <category domain="http://sysd.org/stas/taxonomy/term/29">game</category>
 <category domain="http://sysd.org/stas/taxonomy/term/6">graphics</category>
 <category domain="http://sysd.org/stas/taxonomy/term/34">howto</category>
 <category domain="http://sysd.org/stas/taxonomy/term/28">simulation</category>
 <pubDate>Wed, 10 May 2006 01:22:10 -0300</pubDate>
</item>
<item>
 <title>Duke3D D.M. cheater</title>
 <link>http://sysd.org/stas/node/43</link>
 <description>&lt;br&gt;
&lt;div align=&quot;center&quot;&gt;
&lt;img alt=&quot;E1L2 near the dark room elevator: enhanced brightness&quot; src=&quot;http://sysd.org/stas/files/active/0/duke3d.png&quot; height=&quot;240&quot; width=&quot;320&quot;&gt;&lt;br&gt;
&lt;small&gt;E1L2 near the dark room elevator: enhanced brightness&lt;/small&gt;
&lt;/div&gt;
&lt;br&gt;
Do you consider yourself a good Duke3D deathmatch player?! Neither I do &lt;img src=&quot;misc/smileys/wink.png&quot; title=&quot;Eye-wink&quot; alt=&quot;Eye-wink&quot; /&gt;&lt;br&gt;

For our luck, &lt;a href=&quot;http://www.3drealms.com/&quot;&gt;3D Realms&lt;/a&gt; released Duke3D source code under GPL license at April 1&lt;sup&gt;st&lt;/sup&gt;,
2003. No, I&#039;m not fooling you! Since then, several people are enhancing this
classic game, extending it&#039;s portability and adding some cool features
to it. There are ports like &lt;a href=&quot;http://icculus.org/duke3d/&quot;&gt;icculus Duke3D port&lt;/a&gt; and &lt;a href=&quot;http://jonof.edgenetwork.org/index.php?p=jfduke3d&quot;&gt;JonoF&#039;s Duke Nukem 3D Port&lt;/a&gt;.
So, with the source in my hands, I decided to make my own version. I called it &lt;big&gt;Duke Nukem 3D v1.666&lt;/big&gt;. It
is 100% compatible with the original MS-DOS Duke3D v1.5, and adds some &lt;b&gt;cheats&lt;/b&gt; into &lt;b&gt;deathmatch&lt;/b&gt; games:&lt;br&gt;

&lt;ul&gt;

  &lt;li&gt;&lt;b&gt;Omniscience.&lt;/b&gt; You can peek at your opponents screen (using
&quot;Coop View&quot;, which now works even in the deathmatch mode!), and hear the
sounds they make (you may hear them scream when hit at the long distances).
You are able to see in darkness all the time, without using the
night vision goggles, and without that ugly green screen tinting. You&#039;ll know
when your opponent drops a holoduke, so you won&#039;t waste your ammo with
it. And finally, you won&#039;t see that confusing steroids trail anymore!&lt;br&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Aim bot features.&lt;/b&gt; Aim bot (which can be turned off!) will
track the closest visible opponent automatically. If you&#039;re close
enough to your opponent, aim bot will also try to kick him while
shooting. And it will auto-activate med kit when you get shot! Another
cool feature associated to the aim bot is the auto-jetpack. Jump from a
high place, and jetpack will be activated automatically when you&#039;re
close to the ground.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;Practical enhancements.&lt;/b&gt; When you find a new weapon, game
won&#039;t switch to it automatically. You will always see which weapon your
opponent is using, without activating the &quot;Weapon Mode&quot;. Demo viewer
doesn&#039;t switches camera automatically anymore. And game doesn&#039;t prompts
you with credit screens/animations when started or finished.&lt;/li&gt;
  &lt;li&gt;&lt;code&gt;DNCROZ&lt;/code&gt;&lt;b&gt; during multiplayer?!&lt;/b&gt; Even this is
possible in the cheater! The only problem is: both players should type
it when the game is paused, or the &quot;Out Of Sync&quot; condition occurs.
Other cheats that work in the multiplayer game are: &lt;code&gt;DNSCOTTY###; DNCOORDS, DNVIEW; DNRATE; DNBETA; DNTODD; DNSHOWMAP; DNALLEN; DNDEBUG&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;b&gt;&quot;.ANM viewer&quot;&lt;/b&gt;. Just type &lt;code&gt;DNENDING&lt;/code&gt; while playing, and the game skips right to the episode ending video &lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;

Please note that the most useful cheat, the aim bot, only works fine
with the game&#039;s internal AI opponents (A.K.A. &quot;PP bot&quot;, started with &lt;code&gt;&quot;duke3d.exe /q2 /a&quot;&lt;/code&gt;
command). It may work in the acceptable way on crossover 100 Mbps LAN
connection (peer-to-peer), although... And the worst thing ever: Duke3D
v1.666 will only work on real DOS mode, so forget it if you only have
Windows NT/2k/XP (anyway, those who play Duke3D over network frequently
do have Windows 9x installed for this specific purpose &lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;)&lt;br&gt;

Still interested?! It&#039;s a bit difficult to install, though... First,
you need to have the original Duke Nukem 3D v1.5 installed. Second,
backup it!!! After that:&lt;br&gt;

&lt;ol&gt;

  &lt;li&gt;Unpack the &lt;code&gt;DN3D1666.ZIP&lt;/code&gt; into your Duke3D installation directory, overwriting files.&lt;/li&gt;
  &lt;li&gt;Configure Duke3D. Run &lt;code&gt;SETUP.EXE&lt;/code&gt;, and go to &lt;i&gt;&quot;Controller Setup&quot;&lt;/i&gt;, then &lt;i&gt;&quot;Choose Controller Type&quot;&lt;/i&gt;, and then select &lt;i&gt;&quot;Keyboard and External&quot;&lt;/i&gt;. After this, select &lt;i&gt;&quot;Setup External&quot;&lt;/i&gt;, &lt;i&gt;&quot;Change External Program Name&quot;&lt;/i&gt;, and type &lt;code&gt;&quot;DUKE3D.EXE&quot;&lt;/code&gt; there. Now you can save config, but DON&#039;T LAUNCH A GAME YET!!!&lt;br&gt;
(NOTE: it would be great if you disabled &lt;i&gt;Turn_Left&lt;/i&gt; and &lt;i&gt;Turn_Right&lt;/i&gt; keyboard bindings, although, if you don&#039;t plan to use &lt;i&gt;&quot;AutoAimSelfCalibrate&quot;&lt;/i&gt; setting in &lt;code&gt;DUKE3D.666&lt;/code&gt; file or won&#039;t use Auto-Aim feature at all, you don&#039;t need to do this).&lt;/li&gt;
  &lt;li&gt;Now, edit the file &lt;code&gt;DUKE3D.666&lt;/code&gt;. Open it in your
favorite editor (&lt;code&gt;EDIT.COM&lt;/code&gt; &lt;img src=&quot;misc/smileys/wink.png&quot; title=&quot;Eye-wink&quot; alt=&quot;Eye-wink&quot; /&gt;), and you&#039;ll see that it&#039;s almost self-explanatory. Note that
your mouse is now configured by this file, any &lt;code&gt;SETUP&lt;/code&gt;
settings will be ignored! Also note that default mouse settings for
v1.666 imitates the default settings for the original Duke3D v1.5.&lt;br&gt;
  &lt;/li&gt;
&lt;/ol&gt;

I also recommend you to read the &lt;code&gt;&quot;DN3D1666.ME!&quot;&lt;/code&gt; file, supplied in the download package.&lt;br&gt;

&lt;hr size=&quot;2&quot; width=&quot;100%&quot;&gt;Relative project: &lt;a href=&quot;http://sysd.org/stas/node/40&quot;&gt;GRP packer plugin&lt;/a&gt; for the &lt;a href=&quot;http://www.ghisler.com/&quot;&gt;Total Commander&lt;/a&gt;.&lt;br&gt;

&lt;hr size=&quot;2&quot; width=&quot;100%&quot;&gt;Sorry, no source code is available for direct download. However, if you&#039;re interested in it, &lt;a href=&quot;http://sysd.org/stas/feedback&quot;&gt; contact me&lt;/a&gt; and I&#039;ll provide it to you! Thus, GPL license of the original Duke3D source wouldn&#039;t be harmed, I beleive...&lt;br&gt;
</description>
 <category domain="http://sysd.org/stas/taxonomy/term/9">addon</category>
 <category domain="http://sysd.org/stas/taxonomy/term/19">C</category>
 <category domain="http://sysd.org/stas/taxonomy/term/27">cheat</category>
 <category domain="http://sysd.org/stas/taxonomy/term/29">game</category>
 <category domain="http://sysd.org/stas/taxonomy/term/6">graphics</category>
 <category domain="http://sysd.org/stas/taxonomy/term/18">hack</category>
 <category domain="http://sysd.org/stas/taxonomy/term/7">network</category>
 <category domain="http://sysd.org/stas/taxonomy/term/4">software</category>
 <pubDate>Tue, 09 May 2006 16:47:51 -0300</pubDate>
</item>
<item>
 <title>I.E. &#039;hidden image&#039; maker</title>
 <link>http://sysd.org/stas/node/38</link>
 <description>&lt;p&gt;
&lt;center&gt;&lt;img alt=&quot;sample masked image&quot;
 src=&quot;http://sysd.org/stas/files/active/0/masked.jpg&quot;
 height=&quot;228&quot; width=&quot;320&quot;&gt;&lt;br&gt;
&lt;/center&gt;
&lt;/p&gt;
If you are using Internet Explorer (any version able to load this page
&lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;, just select the above image (or go to &lt;i&gt;&quot;Edit =&amp;gt;
Select All&quot;&lt;/i&gt;, or press &lt;code&gt;Ctrl-A&lt;/code&gt;). You
may see a watermark with white letters forming a word &quot;TEST&quot;. This &lt;b&gt;only&lt;/b&gt;
happens in IE, due to the specific way it masks the selected images to
show their selected state. &lt;a
 href=&quot;http://www.mozilla.org/products/firefox/&quot;&gt;Firefox&lt;/a&gt;,
for example, simply tints the image with bluish color. There are lots
of jokes one can make using this simple principle. For example, all
images on your homepage may have some &quot;subliminal&quot; messages. Adobe
PhotoShop is perfectly suitable to make such &#039;Hidden Images&#039; by hand;
in fact, my inspiration was a tutorial made by Matt Kment to do this.
But if you
are too lazy and/or do not have PhotoShop installed (UN*X users, for
example), you can use this small program I wrote in Perl to automate
the
&quot;steganographic&quot; process. I wrote it using &lt;a
 href=&quot;http://www.imagemagick.net/&quot;&gt;ImageMagick&lt;/a&gt;&lt;small&gt;&lt;sup&gt;TM&lt;/sup&gt;&lt;/small&gt;
library (so it&#039;s required to successfully run the program). It is a
command line program, but it is simple enough to use,
and it has an advantage to be integrable into your own scripts/programs
(you can even setup your server to embed your company logo into all
graphics of your site, but this will overload the server&#039;s CPU and RAM
too quickly). I called my program &quot;Internet Explorer Mask&#039;O&#039;Matic&quot;.
Take a look at it&#039;s startup screen:&lt;br&gt;
&lt;pre&gt;Internet Explorer Mask&#039;O&#039;Matic v1.0 by Stas &lt;stanis
 @linuxmail.org=&quot;&quot;&gt;&lt;br&gt;Grab yours at http://sysdlabs.hypermart.net/ &lt;img src=&quot;misc/smileys/wink.png&quot; title=&quot;Eye-wink&quot; alt=&quot;Eye-wink&quot; /&gt;&lt;br&gt;&lt;br&gt;Inspirated by some mad stuff by Lem0nHead&lt;br&gt;Based on Photoshop &#039;Hidden Image&#039; Guide (http://www.atomicwienerdog.com/ot/)&lt;br&gt;made by Matt Kment &amp;amp; suggested to me by xfalmp&lt;br&gt;&lt;br&gt;&lt;br&gt;ERROR: please give us --visible&lt;br&gt;&lt;br&gt;&lt;br&gt; * Usage: MaskOMatic.pl &lt;options&gt;&lt;br&gt; * Options (note that you can use syntaxes like --vis= --hid -out -p):&lt;br&gt; --visible filename of image normally seen (required)&lt;br&gt; --hidden filename of image seen when selected in IE (required)&lt;br&gt; --output filename to write out, format is selected automatically&lt;br&gt; using suffix provided (required)&lt;br&gt; --percentage float value between 0 &amp;amp; 100; how much of hidden appears&lt;br&gt; (optional, defaults to 50%)&lt;br&gt; --quality JPEG/MIFF/PNG compression level (optional, DON&#039;T USE!)&lt;br&gt; --contrast flag, internal contrast reduction (optional)&lt;br&gt; --test filename to dump preview of selected image (optional)&lt;br&gt;&lt;br&gt; * Notes:&lt;br&gt; # Visible &amp;amp; hidden images doesn&#039;t need to have same size, when size&lt;br&gt; doesn&#039;t matches then hidden image is rescaled using Lanczos filter&lt;br&gt; # A huge set of image formats is supported (JPG, GIF, PNG for example)&lt;br&gt; but I strongly advice you to write output in loseless format *only*&lt;br&gt; (BMP, PNG, TGA) and *then* fine-tune contrast/brightness &amp;amp; save&lt;br&gt; compressed in your favourite image editor (like GIMP)&lt;br&gt;&lt;br&gt; * Example:&lt;br&gt; MaskOMatic.pl --vis bush.jpg --hid death.jpg --out sublim.bmp&lt;br&gt;&lt;/options&gt;&lt;/stanis&gt;&lt;/pre&gt;
Only 3 options are obligatory: &lt;code&gt;--visible&lt;/code&gt;, &lt;code&gt;--hidden&lt;/code&gt;
&amp;amp; &lt;code&gt;--output&lt;/code&gt;. You can abbreviate them
as &lt;code&gt;-v&lt;/code&gt;, &lt;code&gt;-h&lt;/code&gt; &amp;amp;
&lt;code&gt;-o&lt;/code&gt;,
respectively. &quot;Visible&quot; is an image that user sees by default.
&quot;Hidden&quot; is what user sees when he/she selects the image. And &quot;output&quot;
is the resulting image you can embed into your pages. It is also
possible to use the &lt;code&gt;&quot;--test&quot;&lt;/code&gt;
option to preview the selected state of the output image without
starting Internet Explorer. If it looks bad, you may play around with &lt;code&gt;&quot;--percentage&quot;&lt;/code&gt;
option, which specifies the &#039;weight&#039; of the hidden image. The higher
is this value, the greater is the hidden image visibility. If that&#039;s
not
enough to hide your image well (some things are pretty difficult to
hide!), you can try to tune the output image with &lt;code&gt;&quot;--contrast&quot;&lt;/code&gt;
option, but I suggest you to use some GUI program to do that as you get
the visual feedback instantly. I also suggest you to always save your
output in the non-compressed lossless format (like BMP, TGA, TIFF), and
then
fine-tune the compression in some program specialized in it (&lt;a
 href=&quot;http://www.gimp.org/&quot;&gt;GIMP&lt;/a&gt; has a nice
compressor with visual feedback).
&lt;p&gt;
&lt;h3&gt;Alternatives:&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a
 href=&quot;http://www.n-sane.net/effects/hidden-image/index.php&quot; target=&quot;_blank&quot;&gt;Hidden
Image&lt;/a&gt; Photoshop tutorial&lt;/li&gt;
  &lt;li&gt;&lt;a
 href=&quot;http://www.codeproject.com/cs/media/magicimage.asp&quot; target=&quot;_blank&quot;&gt;Magic
Image Generator&lt;/a&gt; C#/VS.NET2003 program (with source) &lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
</description>
 <category domain="http://sysd.org/stas/taxonomy/term/14">console</category>
 <category domain="http://sysd.org/stas/taxonomy/term/6">graphics</category>
 <category domain="http://sysd.org/stas/taxonomy/term/18">hack</category>
 <category domain="http://sysd.org/stas/taxonomy/term/10">opensource</category>
 <category domain="http://sysd.org/stas/taxonomy/term/20">perl</category>
 <category domain="http://sysd.org/stas/taxonomy/term/4">software</category>
 <category domain="http://sysd.org/stas/taxonomy/term/8">web</category>
 <pubDate>Fri, 05 May 2006 17:47:18 -0300</pubDate>
</item>
<item>
 <title>ASCII code explorer</title>
 <link>http://sysd.org/stas/node/22</link>
 <description>&lt;p&gt;
Designed to be the freakin&#039; best ASCII table viewer for DOS platform, LOL!!!
&lt;/p&gt;
&lt;p&gt;
&lt;center&gt;&lt;img title=&quot;Looks like this on the good old MS-DOS ;)&quot; alt=&quot;ASC.EXE screenshot&quot; src=&quot;http://sysd.org/stas/files/active/0/asc.png&quot; style=&quot;width: 640px; height: 400px;&quot;&gt;&lt;/center&gt;
&lt;/p&gt;
&lt;p&gt;
It accesses the console font bitmaps directly from the BIOS and amplifies them 16 times (bitmaps in a hex form are shown, also). User can navigate the character map using his/her mouse or the cursor keys.&amp;nbsp; For every character, it&#039;s ASCII code in decimal, hexadecimal &amp;amp; binary formats is displayed. One can also build strings of ASCII characters, just like in Windows&#039; &quot;Character Map&quot;. Foreground/background colors for the character, magnified character &amp;amp; character string are also editable through the GUI (there are 16 colors available for background, instead of default 8 &lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;. It&#039;s pretty useless today, but helped me a lot to develop my elder programs. By the way, this ASCII explorer was written using QBasic 4.5...
&lt;/p&gt;
</description>
 <category domain="http://sysd.org/stas/taxonomy/term/14">console</category>
 <category domain="http://sysd.org/stas/taxonomy/term/23">database</category>
 <category domain="http://sysd.org/stas/taxonomy/term/6">graphics</category>
 <category domain="http://sysd.org/stas/taxonomy/term/13">GUI</category>
 <category domain="http://sysd.org/stas/taxonomy/term/10">opensource</category>
 <category domain="http://sysd.org/stas/taxonomy/term/4">software</category>
 <pubDate>Thu, 20 Apr 2006 01:52:32 -0300</pubDate>
</item>
</channel>
</rss>

