0

PHPで写真のコラージュを作りたいです。次のように、ローカルホストでテストコードを作成しました。

<style type="text/css">
body{background:url('images/Winter.jpg'); }
#collage:after{content:"";clear:both;display:block;}
}

</style>

<?php

ob_start();
$dir = "images";

if($fp = opendir($dir))
{
  while($file = readdir($fp))
  {
    if('jpg'==(pathinfo($file, PATHINFO_EXTENSION)))
    {
      $style = "style='float:left; -webkit-transform:rotate(".mt_rand(2, 30)."deg); border:solid 5px #eee;'";
       $ht = "height='".mt_rand(100, 300)."'";
    echo "<div class='img_div' $style>";
    echo "<img src='$dir/$file' $ht >";
    echo "<div style='background:#eee;font-size:20px;'>hi</div>";
    echo '</div>';
     }
   }
}
closedir($fp);
?>

必要な出力が生成されましたが、ユーザーが画像ファイルとしてダウンロードできるようにしたいと思います。どうすればいいのですか?

4

2 に答える 2

1

新しい HTML5 キャンバス機能を使用しない限り、モザイクを 1 つの画像にマージするすべての作業をブラウザーに任せることができます (ただし、まだ多くのブラウザーでサポートされていますか?正直なところわかりません)。

php の GD ライブラリを使用して、サーバー側でそのイメージを作成することもできます。それが HTML5 より前の唯一の方法であり、しばらくの間は依然として最良の方法である可能性があります (前述したように、今日まで HTML5 の実装にどのような価値があるのか​​正確にはわかりません)。

開始するのに適した場所は次のとおりです。教育)。

さて、この方法には (すべての作業を行わなければならないことに加えて) 不便な点が 1 つあります。サーバーの CPU に負担がかかり、応答が遅くなります。一度に数人の訪問者しかいない場合でも問題ありません。しかし、それ以外の場合は、コラージュを一度だけ事前に計算する必要があるため、サーバーはアクセスごとにジョブをやり直す必要はありません。

于 2012-09-22T10:23:22.463 に答える
1

必要な場合は、php の GD ライブラリなどを使用して新しい空白の画像を作成し、html/css を使用して印刷して配置する代わりに、その中に画像を配置する必要があります。

(私はどこかで、将来、html/css を html5 キャンバスに表示できるようになると信じています。それが本当なら、それを使用して画像を抽出することができますが、今のところそうなるとは思いません可能)

于 2012-09-22T09:00:57.387 に答える