<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Michał Środek &#187; grafika</title>
	<atom:link href="http://srodek.info/tags/grafika/feed" rel="self" type="application/rss+xml" />
	<link>http://srodek.info</link>
	<description>Mój osobisty blog</description>
	<lastBuildDate>Mon, 15 Aug 2011 19:00:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Canvas — zarządzanie pikselami</title>
		<link>http://srodek.info/blog/190/canvas-zarzadzanie-pikselami</link>
		<comments>http://srodek.info/blog/190/canvas-zarzadzanie-pikselami#comments</comments>
		<pubDate>Sat, 17 Apr 2010 15:26:05 +0000</pubDate>
		<dc:creator>Michał Środek</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[grafika]]></category>

		<guid isPermaLink="false">http://srodek.info/?p=190</guid>
		<description><![CDATA[Pracuję aktualnie nad oskryptowaniem, które zostanie użyte na stronie mojego przyjaciela(http://szescian.pl/). Sęk w tym, że jego bujna wyobraźnia wygenerowała coś, z czym mogę mieć niemałe problemy. Mówiąc krótko: dużo matematyki oraz sporo generowania wielokątów. Postanowiłem, że użyję do tego celu technologii canvas. Mając chwilę czasu chciałbym się z wami podzielić kilkoma fajnymi technikami. O rysowaniu [...]]]></description>
			<content:encoded><![CDATA[<p>Pracuję aktualnie nad oskryptowaniem, które zostanie użyte na stronie mojego przyjaciela(<a href="http://szescian.pl">http://szescian.pl/</a>). Sęk w tym, że jego bujna wyobraźnia wygenerowała coś, z czym mogę mieć niemałe problemy. Mówiąc krótko: dużo matematyki oraz sporo generowania wielokątów. Postanowiłem, że użyję do tego celu technologii canvas. Mając chwilę czasu chciałbym się z wami podzielić kilkoma fajnymi technikami. O rysowaniu wielokątów napiszę innym razem. Dzisiaj chciałbym pokazać wam coś co dla wielu prawdopodobnie wydawałoby się niemożliwe <img src='http://srodek.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Spróbujemy przekonwertować, piksel po pikselu, obrazy za pomocą JavaScript.<br />
<span id="more-190"></span></p>
<p>Jako obraz poglądowy wybrałem jedno z moich zdjęć:<br />
<a href="http://srodek.info/wp-content/uploads/2010/04/test.jpg"><img class="aligncenter size-medium wp-image-191" title="test" src="http://srodek.info/wp-content/uploads/2010/04/test-e1271443513261-150x150.jpg" alt="" width="150" height="150" /></a></p>
<p>Spróbujmy najpierw stworzyć obiekt canvas, nadać mu identyfikator oraz po prostu wczytać do niego obrazek.</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;canvas id=&quot;myCanvas&quot; width=&quot;600&quot; height=&quot;150&quot;&gt;Brak obsługi Canvas&lt;/canvas&gt;</pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// wybranie elementu &lt;canvas&gt;</span>
<span style="color: #003366; font-weight: bold;">var</span> myCanvas <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'myCanvas'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// sprawdzenie czy można pobrać kontekst</span>
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>myCanvas.<span style="color: #660066;">getContext</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #006600; font-style: italic;">// pobranie &quot;kontekstu 2d&quot;</span>
  <span style="color: #003366; font-weight: bold;">var</span> ctx <span style="color: #339933;">=</span> myCanvas.<span style="color: #660066;">getContext</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'2d'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>ctx<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
  <span style="color: #006600; font-style: italic;">// stworzenie nowego obrazka</span>
  <span style="color: #003366; font-weight: bold;">var</span> img <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Image<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #006600; font-style: italic;">// okreslenie adresu</span>
  img.<span style="color: #660066;">src</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'/examples/canvas1/mini.jpg'</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #006600; font-style: italic;">// stworzenie zdarzenie wywołanego po wczytaniu obrazka</span>
  img.<span style="color: #660066;">addEventListener</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'load'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #006600; font-style: italic;">// rysuj obrazek rozpoczynajac od wspolrzednych 0,0 pola canvas</span>
    ctx.<span style="color: #660066;">drawImage</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">150</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">150</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Kolejnym krokiem jest wczytanie informacji o pliku. Chcę stworzyć 3 modyfikacje mojego zdjęcia więc robię to trzykrotnie.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">   <span style="color: #006600; font-style: italic;">// Get the pixels.</span>
    <span style="color: #003366; font-weight: bold;">var</span> imgdata <span style="color: #339933;">=</span> ctx.<span style="color: #660066;">getImageData</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">150</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">150</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> imgdata2 <span style="color: #339933;">=</span> ctx.<span style="color: #660066;">getImageData</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">150</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">150</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> imgdata3 <span style="color: #339933;">=</span> ctx.<span style="color: #660066;">getImageData</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">150</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">150</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Spróbujmy wykonać pierwsze przekształcenie polegające na konwersji zdjęcia do palety szarości.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">   <span style="color: #003366; font-weight: bold;">var</span> pix <span style="color: #339933;">=</span> imgd.<span style="color: #660066;">data</span><span style="color: #339933;">;</span> 
   <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> n <span style="color: #339933;">=</span> pix.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> n<span style="color: #339933;">;</span> i <span style="color: #339933;">+=</span> <span style="color: #CC0000;">4</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      pix<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">0.2989</span><span style="color: #339933;">*</span>pix<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">0.5870</span><span style="color: #339933;">*</span>pix<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">0.1140</span><span style="color: #339933;">*</span>pix<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// czerwony</span>
      pix<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">0.2989</span><span style="color: #339933;">*</span>pix<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">0.5870</span><span style="color: #339933;">*</span>pix<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">0.1140</span><span style="color: #339933;">*</span>pix<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// zielony</span>
      pix<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">0.2989</span><span style="color: #339933;">*</span>pix<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">0.5870</span><span style="color: #339933;">*</span>pix<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">0.1140</span><span style="color: #339933;">*</span>pix<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// niebieski</span>
    <span style="color: #009900;">&#125;</span>
    ctx.<span style="color: #660066;">putImageData</span><span style="color: #009900;">&#40;</span>imgdata<span style="color: #339933;">,</span> <span style="color: #CC0000;">150</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Krótkie wytłumaczenie:<br />
Najpierw została pobrana tablica pikseli. Sposób zapisu danych na ich temat jest troszkę nietypowy. Każdy piksel jest mieszaniną trzech(czerwony, zielony, niebieski) kolorów oraz współczynnika przezroczystości. Dlatego, nasza tablica posiada 90 tys. elementów(150x150x4). Skacząc w pętli co cztery elementy, za każdym razem otrzymujemy nowy piksel do przebadania. Każdy z nich jest przekształcany na jeden z odcieni szarości. Na końcu obraz jest umieszczany w miejscu o współrzędnych 150,0(pierwszych 150 pikseli zajmuje nieprzekształcone zdjęcie, które umieściliśmy już wcześniej.</p>
<p>Spróbujmy odwrócić kolory:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">&nbsp;
   <span style="color: #003366; font-weight: bold;">var</span> pix <span style="color: #339933;">=</span> imgdata2.<span style="color: #660066;">data</span><span style="color: #339933;">;</span>
   <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> n <span style="color: #339933;">=</span> pix.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> n<span style="color: #339933;">;</span> i <span style="color: #339933;">+=</span> <span style="color: #CC0000;">4</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      pix<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">255</span> <span style="color: #339933;">-</span> pix<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// czerwony</span>
      pix<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">255</span> <span style="color: #339933;">-</span> pix<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// zeilony</span>
      pix<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">255</span> <span style="color: #339933;">-</span> pix<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// niebieski</span>
    <span style="color: #009900;">&#125;</span>
    ctx.<span style="color: #660066;">putImageData</span><span style="color: #009900;">&#40;</span>imgdata2<span style="color: #339933;">,</span> <span style="color: #CC0000;">300</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Ostatnim przekształceniem będzie zabawa z kolorami <img src='http://srodek.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Wydzieliłem również pas pikseli, który będzie przekształcany w inny sposób. W ten sposób można tworzyć efekty punktowe(np. podświetlić na biało oczy).</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">   <span style="color: #003366; font-weight: bold;">var</span> pix <span style="color: #339933;">=</span> imgdata3.<span style="color: #660066;">data</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> n <span style="color: #339933;">=</span> pix.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> n<span style="color: #339933;">;</span> i <span style="color: #339933;">+=</span> <span style="color: #CC0000;">4</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	  <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">&lt;</span><span style="color: #CC0000;">15000</span> <span style="color: #339933;">||</span> i<span style="color: #339933;">&gt;</span> <span style="color: #CC0000;">75000</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
              pix<span style="color: #009900;">&#91;</span>i  <span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">25</span><span style="color: #339933;">+</span>pix<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">/</span><span style="color: #CC0000;">2</span><span style="color: #339933;">+</span>pix<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">/</span><span style="color: #CC0000;">5</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// czerwony</span>
              pix<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">25</span><span style="color: #339933;">+</span>pix<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">/</span><span style="color: #CC0000;">2</span><span style="color: #339933;">+</span>pix<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">/</span><span style="color: #CC0000;">5</span> <span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// zielony</span>
              pix<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #CC0000;">25</span><span style="color: #339933;">+</span>pix<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">/</span><span style="color: #CC0000;">2</span><span style="color: #339933;">+</span>pix<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">/</span><span style="color: #CC0000;">2</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// niebieski</span>
	  <span style="color: #009900;">&#125;</span>
	  <span style="color: #000066; font-weight: bold;">else</span>
	  <span style="color: #009900;">&#123;</span>
              pix<span style="color: #009900;">&#91;</span>i  <span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> pix<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// czerwony</span>
              pix<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> pix<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">/</span><span style="color: #CC0000;">2</span><span style="color: #339933;">+</span><span style="color: #CC0000;">50</span> <span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">//zielony</span>
              pix<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> pix<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">/</span><span style="color: #CC0000;">2</span><span style="color: #339933;">+</span><span style="color: #CC0000;">40</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// niebieski</span>
	  <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    ctx.<span style="color: #660066;">putImageData</span><span style="color: #009900;">&#40;</span>imgdata3<span style="color: #339933;">,</span> <span style="color: #CC0000;">450</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Oczywiście musimy jeszcze uzupełnić parametry funkcji oraz zamknąć wszystkie nawiasy.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">  <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Pamiętajmy jednak, że element canvas jest niedostepny w starszych przeglądarkach Internet Explorer. Jeśli się nie mylę dopiero 9 wersja zacznie go obsługiwać poprawnie.</p>
<p>Cały przykład dostępny w postaci pliku js: <a href="/examples/canvas1/canvas.js">canvas.js</a></p>
<p>Efekt działania:<br />
<canvas id="myCanvas" width="600" height="150">Brak obsługi Canvas</canvas><script type="text/javascript" src="/examples/canvas1/canvas.js"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://srodek.info/blog/190/canvas-zarzadzanie-pikselami/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

