3

私はレスポンシブ Web アプリケーションに取り組んでいます。私のデザイナーは370x700px、静的ページで画像を使用しました。このwidth:100% height:auto.

370x700pxこのサイトでは、管理画面から商品画像をアップロードしています。レスポンシブサイトがないので、違うサイズのサムネイルを作っていたのですが、この場合、どのサイズのサムネイルを作ろうか悩んでいます。これらの画像は大きすぎて読み込めません。1 ページに 10 個の画像を読み込まなければなりません。画像の最小サイズは 150kb です。そのため150*10 = 1500kb、他のコンテンツを除く画像のみ。これらは小さな画像です。大きな画像の解像度は700x1800px、ズーム セクションの製品詳細ページに表示されます。

それを行う他の方法はありますか?管理パネルから 370*700px のサムネイル画像を作成する必要がありますか?

4

2 に答える 2

0

その場で画像のサイズを変更して次のように使用できるphpスクリプトを実行できます

/image-resizer.php?source=画像へのパス&width=x&height=x

于 2013-06-07T23:44:08.663 に答える
0

これは、DB から任意の画像のサイズを変更する、私が書いた古いコードです。非推奨の mysql_* を引き続き使用しますが、更新するのは簡単です。

$GET 引数、img (画像に対応するデータベースの行)、最小、最大、高さ、幅を取るように設計されています。どちらが設定されているかに応じて、絶対値を修正するか、必要なサイズに画像を合わせようとします。これにより、1 つの画像のみをアップロードして、ページのサイズを動的に変更できます。

    $sql=sprintf("SELECT image,filetype,width,height FROM image WHERE imageline='%s'",mysql_real_escape_string($_GET['img']));
$result=mysql_query($sql,$dbh);
$row=mysql_fetch_assoc($result);
$filetype=($row['filetype']!="")?$row['filetype']:"image/jpeg";
$content=base64_decode($row['image']);
$newheight=0;
$newwidth=0;
if($row['height']==0||$row['width']==0)
    {

    header("Content-type: $filetype");
    echo ($content);
    die;
    }

if($_GET['max']>0)
    {
    if($row['height']>=$row['width'])
        {
        $_GET['height']=($_GET['max']>$row['height'])?$row['height']:$_GET['max'];
        $_GET['width']=0;
        }
    if($row['width']>$row['height'])
        {
        $_GET['width']=($_GET['max']>$row['width'])?$row['width']:$_GET['max'];
        $_GET['height']=0;
        }
    }

if($_GET['min']>0)
    {
    if($row['height']<=$row['width'])
        {
        $_GET['height']=$_GET['min'];
        $_GET['width']=0;
        }
    if($row['width']<$row['height'])
        {
        $_GET['width']=$_GET['min'];
        $_GET['height']=0;
        }
    }

if($_GET['height']>0&&$_GET['width']==0)
    {
    $newheight=$_GET['height'];
    $newwidth=$row['width']*($_GET['height']/$row['height']);

    }
if($_GET['height']>0&&$_GET['width']>0)
    {
    $newheight=$_GET['height'];
    $newwidth=$_GET['width'];
    }
if($_GET['width']>0&&$_GET['height']==0)
    {
    $newwidth=$_GET['width'];
    $newheight=$row['height']*($_GET['width']/$row['width']);   
    }

if($newheight>0&&$newwidth>0)
    {
    $newheight=floor($newheight);
    $newwidth=floor($newwidth); 
    $image=imagecreatefromstring($content);
    $newimage=imagecreatetruecolor($newwidth, $newheight);
    imagecopyresampled($newimage, $image, 0, 0, 0, 0, $newwidth, $newheight,$row['width'], $row['height']);
    header("Content-type: image/jpeg");
    imagejpeg($newimage);
    die;
    }
header("Content-type: $filetype");

echo ($content);
于 2013-06-07T11:08:05.073 に答える