ラベル iPhone の投稿を表示しています。 すべての投稿を表示
ラベル iPhone の投稿を表示しています。 すべての投稿を表示

2013年3月12日火曜日

スマフォWEBアプリで写真をタイル表示させる件。(2)

ということで、タイル状に配置する件ですが、タテ長の場合、ヨコ長の場合に、
おおまかに言えば、【必ず入るように配置】の場合と、【部分的に正方形で表示】の場合が考えられます。まぁやりかたとしては大してかわりませんが、
【必ず入るように配置】は、以下ですね。



そして、部分画像と割り切って、正方形としてしまうのが、以下です。
スマフォのアプリなんかはこっちです。


もちろん、部分画像にした方が、切れてしまう部分はあるものの、
解像度としては高くなり有利ではあります。
でも、それは、写真の一覧だからであって、何かしらの選択の場合に、やはり全体をみて欲しいときもあります。その場合は前者になりますね。

どっちにしてもPHPでの実装は非常に簡単で、まず前者の場合。
【画像をLOAD】→【タテとヨコを測る】→【タテヨコ大きい方の数値で正方形の画像を生成】
→【LOADした画像を中央に配置】→【作成した画像をそのまま出力】
で完成。
後者の場合も、
【画像をLOAD】→【タテとヨコを測る】→【タテヨコ小さい方の数値で正方形の画像を生成】
→【LOADした画像を中央に配置】→【作成した画像をそのまま出力】

ということで、正方形にする時の辺の長さをどこをとるかだけの差です。
もちろんその場合に、サムネイル用の場合を考えれば、
あえて、縮小した大きさの正方形で作成するというのも、用途によってはアリですね。

ということで、PHPを。
エラー処理とかしてませんので(-_-;)

 // $fn:ファイルパス
 $localimage = imagecreatefrompng($fn);  // PNGの時
// $localimage = imagecreatefromjpeg($fn); // JPEGの時
 //------------------
 $ww = imagesx ( $localimage );
 $hh = imagesy ( $localimage );
 //------------------
 if($ww > $hh){
  $hh2 = $ww;
  $ww2 = $ww;
 }else{
  $ww2 = $hh;
  $hh2 = $hh;
 }
 //------------------
 $image   = imagecreatetruecolor($ww2, $hh2);
 $bgColor  = imagecolorallocate($image, 0x0, 0x0, 0x0);
 imagefill($image, 0, 0, $bgColor);   // 背景を塗ってから
// imagecolortransparent($image,$bgColor);  // 透明にしたいとき
 $bb = imagecopy($image, $localimage, 
   (int)(($ww2 - $ww)/2), (int)(($hh2 - $hh)/2),   // COPY先
   0, 0,            // COPY元
   $ww, $hh);
 if(is_resource ( $localimage )) imagedestroy($localimage);
 header('Content-type: image/jpeg');
 imagejpeg($img);

2013年3月1日金曜日

●このjavascript、iPhoneのサファリでフリーズ!

●このjavascript、iPhoneのサファリでフリーズ!
※name=uploadはfile。
$(function(){
    $('input[name=upload]').change(function() {
  var size = this.files[0].size;
  alert(size);
...略...

2013年2月28日木曜日

iOS6未満でOperaMiniでFileUpload、やっぱりダメ

うぅーーん。やっぱり無理でした。
スマフォ用のWebサイトを、『どこまで対応端末としてターゲットにするか』
と言う問題はいつでもついてまわるわけですが、
jQuery+jQueryMobile+jQueryUpload &&
FileUpload de iPhone3G with OperaMini
  ↓
あえなく失敗。。。。^^;^^;
ファイル選択はできてるんですけどねー。。。
アプリにするしかないのか。。。。。