Swego czasu też starałem się coś wykombinować i zrobiłem w PHP taką funkcję:

Kod:
<?
function fotka($LinkDoFotki) {
  list($width, $height, $type, $attr) = getimagesize($LinkDoFotki);
  $img = imagecreatefromjpeg($LinkDoFotki);
  
  echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"".$width."\" height=\"".$height."\">\n";
  
  for($i=0;$i<$height;$i++) {
    echo "<tr>\n";
    for($j=0;$j<$width;$j++) {
      $rgb = ImageColorAt($img, $j, $i);
      $r = ($rgb >> 16) & 0xFF;
      $g = ($rgb >> 8) & 0xFF;
      $b = $rgb & 0xFF;
      echo "<td style=\"background-color: rgb(".$r.", ".$g.", ".$b.");\"></td>\n";
    }
    echo "</tr>\n";
  }
  echo "</table>\n";
}
?>
<html>
<body>
<?
fotka("http://serwer.domena.com/katalog/fotka.jpg");
?>
</body>
</html>
Już na etapie jak przyszło mi to do głowy to wiedziałem, że będzie bezużyteczne, jednak z ciekawości jak bardzo - postanowiłem spróbować. W skrócie - funkcja bierze fotkę i tworzy w htmlu tabelkę o komórkach 1x1 piksel, tak by było wierszy i kolumn odpowiednio do rozdzielczości obrazka i potem ustawia tło odpowiedich komórek na kolor taki jak ma piksel w tym miejscu w fotce.
Chyba się spodziewacie jak szybko to działa i ile zajmuje wygenerowany kod :-)
A potem wystarczy tylko Print-Screen...

Nie ma sposobu by skutecznie ochronić swoje zdjęcia. Chciałem jeszcze kombinować z funkcją, która tnie zdjecie na kawałki i ustawia jako tło tabeli, a komórki wypełnia przeźroczystym gifem, ale to wszystko i tak da się obejść.