![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
FlickrのAPIで取得したサムネイルは非常に画質が綺麗なので、Flickrのサムネイルに近いくらいのサムネイルを作りたいと思っているのですが、ある疑問が浮かんで来ました。
サンプルページ
http://sampleyoudesu.blog.fc2.com/blog-entry-2.h …
FlickrのAPIを利用してサンプルページを作ってみました、Flickrのサムネイルの大きさは全て、縦横85×85pxになっています。
Flickrから読み込んでいるサムネイルの元の画像はほとんど正方形ではないはずなのですが、どうしてこんなに綺麗なサムネイルになるのでしょうか?
縦300の横の200の画像をソフトを利用して85×85の大きさにしても、元の画像が正方形ではないためFlickrのような綺麗なサムネイルは出来上がりません。どうすればFlickrのような綺麗なサムネイルが出来上がるのでしょうか?
綺麗なサムネイルが作れるソフトや方法がありましたら、ぜひ教えていただけると幸いです。
No.2ベストアンサー
- 回答日時:
#1です。
>Flickrの元の画像を見る限り、サムネイルでは縦のサイズが削られていると思います
そうは見えませんが…
#1の前半の方法のように思えます。(大抵は、元画像が横長なので、横幅がトリミングされていると思います)
中央をあわせるような一括処理なら機械的にできそうなきがしますが、サーバサイドのスクリプトはよくわかりませんので、適当に検索してみると、方法はいろいろですが、以下のようなものが…
http://www.synck.jp/contents/products/weblogs/fe …
http://phpspot.org/blog/archives/2008/04/php_95. …
http://biscuit.lovepop.jp/PHP/tools_image_resize …
http://jalbum.net/ja/
http://www.imagemagick.org/script/index.php
処理自体はたいしたことはなさそうなので、perl、phpなどでも可能かと思います。
効率を考えれば、画像アップ時にサムネイルを作成しておくのが良さそうですが、出力時に処理する方法を考えているものもあるようですね。
ここはjavascriptのカテゴリなので、javascriptで処理する例を…
(スクリプトオフの時には効かなくなるので、お勧めはできません。)
方法的には#1の前半の方法ですが、param = "fit"にすれば後半の方法に変わります。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>sample</title>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<style type="text/css">
<!--
#thumbnail { width:500px; }
#thumbnail, #thumbnail li { list-style-type:none; margin:0; padding:0; }
#thumbnail li { width:100px; height:100px; float:left; position:relative; overflow:hidden; }
//-->
</style>
<script type="text/javascript">
<!--
window.onload = function(){
var size = 100; //←指定サイズ
var param = "trim"; //←処理方法(trim/fit)
var imgs = document.getElementById("thumbnail").getElementsByTagName("img");
var i, img, w, h, ratio;
var func = param=="trim"?Math.min:param=="fit"?Math.max:function(){return size};
for(i=0; img=imgs[i++];){
if(img.complete && img.clientWidth){
ratio = size / func(img.clientWidth, img.clientHeight);
w = ratio * img.clientWidth | 0;
h = ratio * img.clientHeight | 0;
img.style.position = "absolute";
img.style.width = w + "px";
img.style.height = h + "px";
img.style.top = ((size - h)/2 | 0) + "px";
img.style.left = ((size - w)/2 | 0) + "px";
}
}
}
//-->
</script>
</head>
<body>
<ul id="thumbnail">
<li><img src="A.jpg" alt=""></li>
<li><img src="B.jpg" alt=""></li>
<li><img src="C.jpg" alt=""></li>
<li><img src="D.jpg" alt=""></li>
<li><img src="E.jpg" alt=""></li>
<li><img src="F.jpg" alt=""></li>
<li><img src="G.jpg" alt=""></li>
<li><img src="H.jpg" alt=""></li>
<li><img src="I.jpg" alt=""></li>
</ul>
</body>
</html>
たくさん方法があるのですね、PHPとかまったく理解していないので、紹介していただいたのですが、勉強しないとなかなか利用できなさそうです。
javascriptでもサムネイルを作ることは可能なのですね。
早速試してみようと思います。
親身に回答していただき有難うございました。
No.1
- 回答日時:
実物を知らないので、想像での回答ですが…
画像の短い辺に合わせた正方形で、トリミングして表示しているのではないでしょうか?
例えば、縦300ピクセルの横の200ピクセルの画像であれば
その中央部を中心に、縦横200ピクセルを85×85のサイズに縮小して表示しているのでは?
(このような操作の結果、上下50ピクセル分ずつが表示されないことにはなりますが)
あるいは逆に、長い辺に合わせた正方形の中に、余白を設けて表示するとか。
300×200の場合、300×300の中央に表示した状態のものを85×85に縮小表示。
(こちらの場合は、左右に50ピクセル(表示上は約15ピクセル)の余白ができます)
この回答への補足
回答有難うございます。
サンプルページにFlickrのサムネイルが表示されるようになっていますので、そちらをごらん頂ければ、Flickrのサムネイルが表示されていると思います。
>その中央部を中心に、縦横200ピクセルを85×85のサイズに縮小して表示しているのでは?
Flickrの元の画像を見る限り、サムネイルでは縦のサイズが削られていると思います。
ソフトを探してみましたが、手動でサムネイルにしたい部分を指定してサムネイルにできるソフトはありましたが、たくさんのサムネイルを作る場合時間がたくさんかかってしまうため、困っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- YouTube ユーチューブへの動画投稿にサムネイルを付ける方法は? 1 2022/07/21 23:45
- Instagram Instagramの投稿を、16:9の画像サイズにして、その画像真ん中の、自分のページを見たときの各 0 2023/08/08 00:17
- YouTube YouTubeのサムネイル(静止画)を自分で選ぶか、作成したい 1 2022/07/03 15:37
- 画像編集・動画編集・音楽編集 エクスプローラー サムネイル表示されない 1 2022/12/22 10:14
- LINE 自分のYouTubeのアイコンやパナーの画像を 変更しました。 LINEで共有で送ると 前のアイコン 1 2023/05/14 20:25
- その他(コンピューター・テクノロジー) Windows 11 画像のサムネイルの画像が出ず、赤い四角のマークだけになる 8 2022/09/22 16:10
- Windows 10 Windows10の画像ファイルのサムネールがアイコン表示になってしまいました。 3 2022/07/09 13:01
- YouTube YouTubeのサムネイルを全部選びたい。 2 2022/07/16 01:12
- YouTube YouTubeのサムネについて 2 2023/03/27 14:05
- 画像編集・動画編集・音楽編集 Photoshopを使って画像のような4分割のサムネイルを制作したいのですが、方法がさっぱりなのでど 5 2023/06/07 04:27
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
同一ページ内の複数のタグに同...
-
jQueryでタブ、スライダーを使...
-
以前、ロールオーバー効果につ...
-
Slick.jsのオプションrtlについて
-
Javascriptで画像のフェードイン
-
画像をフェードアウト&フェー...
-
HTML5 footer 固定の仕方
-
MAX関数を使ってからLEFT JOIN...
-
eclipseでcssを使うためには?
-
jqueryのsortableで一部ソート...
-
【CSS】floatで左右に並べた...
-
Vb.net2005での画像の合成方法
-
CSS <div>の入れ子が反映さ...
-
JavaScriptで変更した属性の元...
-
コンテンツの移動方法について
-
textareaで入力した文字を改行...
-
読み込んだQRコードをフォーム...
-
画像の下に説明文をつけて切り...
-
背景色を一定時間ごとにランダ...
-
this.src等のthisについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Slick.jsのオプションrtlについて
-
キャラクターがぴょこんと飛び...
-
【jQuery】2分割レイアウトで、...
-
スライドショー「Skitter」をカ...
-
スライドショーの画像にリンク...
-
画像をフェードアウト&フェー...
-
Dreamweaver上とデバイスプレビ...
-
アコーディオンメニューが開い...
-
神経衰弱 順番に裏返し
-
楽天APIのデータをjqueryのgetJ...
-
swiper.jsについて
-
エンドロールを枠の中で表示す...
-
順番にクラスをつけていく方法
-
画像にマウスを乗せた時のJava ...
-
bxsliderでスライドショーの間...
-
複数の要素へ appendchild でき...
-
jQueryでタブ、スライダーを使...
-
SimplyScrollについて
-
bxSliderのランダム表示について
-
javascript 神経衰弱
おすすめ情報