width
および属性を使用してブラウザーでそれらをスケーリングできheight
ます (または 1 つだけが縦横比を維持します) が、これは帯域幅、ページ パフォーマンス、画像品質などの多くの理由で良くありません。
GD
またはなどのライブラリを使用して、画像のサイズを変更できます。Imagick
簡単なサンプルIMagick
:
$hThumb = new Imagick($path_to_file); // Source file
$hThumb->thumbnailImage($x, $y); // You can use 300, 0 to do 300 width and maintain aspect ratio.
$hThumb->stripImage(); // remove meta data
$hThumb->writeImage($path_to_thumb); // write the image to disk
ノート
読み取り/書き込み権限があることを確認してください。is_readable
およびを使用して、この権限を確認できますis_writable
。
読み込み中
または同様のライブラリAJAX
を使用する場合、非常に簡単な方法で画像をロードすることをお勧めします。JQuery
$('#nextBtn').click(function() {
var index = 0; // Store this in your image ID tag perhaps
// e.g. $('#theImage').attr('id').replace('image', '')
// where ID is imageX
$.ajax({
url: 'getImages.php?index=' + index,
type: "GET",
success: function(data) {
var result = $.parseJSON(data);
if (result.success) {
// Set your image src with the new path.
// Use result.image_data.src etc...
}
}
});
});
PHP も比較的単純で、次のような構造です。
<?php
$return = array('success' => false, 'image_data' => array());
if (isset($_GET['index']) && is_numeric($_GET['index')) {
// Fetch your image
$return = array(
'success' => true,
'image_data' => array(
'src' => $src,
'title' => $title,
'index' => $index
)
);
}
echo json_encode($return);
?>
** 追記 **
kgb が述べているように、アップロード時にこれらのサイズを変更する必要がありますが、ユーザーが送信したものではない可能性があるため、サムが出力に存在するかどうかを確認し、必要に応じて生成することもできます。ただし、すべてのビューに対してそれらを生成するわけではありません。