4

画像 (画像自体ではなく) への URL が与えられた場合、そのサイズを取得するのに最も効率的な方法は何ですか? <img>イメージ タグ ( ) の高さと幅の属性が 200x200 より大きい場合、変更したいと考えています。ただ、それよりも小さいのであれば、そのままのサイズでお願いしたいです。(私は ASP.NET/C# を使用しています)

4

4 に答える 4

4

寸法をチェックしようとする代わりに (ほとんどの場合、画像全体をダウンロードして処理する必要があるため、これは無駄になります)、画像を<div>要素に配置して、コンテナのmax-heightおよびmax-widthスタイルをご希望の寸法?

もう 1 つのオプションは、画像に気付いたときに画像を一度フェッチし、コンテナーに適切に収まるようにサイズを変更し、サーバーに保存して提供することです。

于 2010-04-09T19:37:07.700 に答える
1

JPEG であることがわかっている場合は、最初の数バイトを取得して、画像ヘッダーから幅/高さを解析できます。

他の画像形式は実行が難しい場合があります。PNGはすべてをチャンクで行うため、この種のヘッダー検査を行うことはできないと思います。

于 2010-04-09T19:30:37.327 に答える
1

最初に画像を読み込んで画像のプロパティを確認したくない場合は、javascript を使用して行うことができます。

<img src="image.jpg" onload="if( this.width > 200 ) this.width = 200;">
于 2010-04-09T19:32:56.200 に答える
0

http://www.brettb.com/ASPNETUploadImageSize.asp

サンプルコードは上記サイトより。これはアップロードされた画像用ですが、ファイル ストリームから情報を取得する方法を示しています。

private void ButtonUpload_Click(object sender, System.EventArgs e)  {

    //Determine type and filename of uploaded image
    string UploadedImageType = UploadedPicture.PostedFile.ContentType.ToString().ToLower();
    string UploadedImageFileName = UploadedPicture.PostedFile.FileName;

    //Create an image object from the uploaded file
    System.Drawing.Image UploadedImage = System.Drawing.Image.FromStream(UploadedPicture.PostedFile.InputStream);

    //Determine width and height of uploaded image
    float UploadedImageWidth = UploadedImage.PhysicalDimension.Width;
    float UploadedImageHeight = UploadedImage.PhysicalDimension.Height;

    //Check that image does not exceed maximum dimension settings
    if (UploadedImageWidth > 600 || UploadedImageHeight > 400) {
            Response.Write("This image is too big - please resize it!");
    }

}
于 2010-04-09T19:31:20.663 に答える