English 中文(简体)
ASP.NET:获得图像的高度和宽度[复制]
原标题:ASP.NET: get height and width of an image [duplicate]

提出了这一问题的各种难题,但我还没有找到正确的答案。

Sayi在档案服务器上的形象是.jpg,我需要获得高和宽。 我怎么做。

我看到了一些答案,它们建议采取类似行动:

System.Drawing.Image image=System.Drawing.Image.FromFile(PicturePath); 
int ActualWidth=image.Width;
int ActualHeight=image.Height;
image.Dispose();

因此,你如何在ASP.net获得图像的实际高度和宽度?

问题回答

添加一个服务器侧面图像控制器 the

<asp:image ID="img1" runat="server" src="" />

而后附则则

img1.src = System.Drawing.Image.FromFile(PicturePath);

int ActualWidth = img1.Width;
int ActualHeight = img1.Height;
img1.src = "";

你可以使用“蓝图”类。

www.un.org/Depts/DGACM/index_spanish.htm C#

Bitmap bitmap = new Bitmap(filepath);

int iWidth = bitmap.Width;
int iHeight = bitmap.Height;

<>/strong>

Dim bitmap As New Bitmap(filepath)

Dim iWidth As Integer = bitmap.Width
Dim iHeight As Integer = bitmap.Height

愿这一帮助

string lPath = Server.MapPath("~\Images1\") + dsProd.Tables[0].Rows[i]["Image1"].ToString();

Image1.ImageUrl = "Images1\" + dsProd.Tables[0].Rows[i]["Image1"].ToString();
Image2.ImageUrl = "Images1\" + dsProd.Tables[0].Rows[i]["Image2"].ToString();


string currentImagePath = lPath.ToString();// Session["FullImagePath"] + "\" + GetCurrentFileName();
Bitmap bmp = new Bitmap(currentImagePath);



 int iActualWidth=0,iActualHeight=0;
for (int j = 1; j <= 100; j++)
{
    if ((bmp.Width / j) > 150)
    {
          iActualWidth = bmp.Width / j;
          iActualHeight = bmp.Height / j;
    }
    else
    {
        break; 
    } 
}

Image1.Height = new Unit(iActualHeight);
Image1.Width = new Unit(iActualWidth);

这就是service,而不是Application。 这样做只会奏效。

一、将C++代码改为C#供今后参考:

static bool get_jpeg_size(byte[] data, int data_size, ref int width, ref int height)
{
    //Check for valid JPEG image
    int i = 0;   // Keeps track of the position within the file
    if (data[i] == 0xFF && data[i + 1] == 0xD8 && data[i + 2] == 0xFF && data[i + 3] == 0xE0)
    {
        i += 4;
        // Check for valid JPEG header (null terminated JFIF)
        if (data[i + 2] ==  J  && data[i + 3] ==  F  && data[i + 4] ==  I  && data[i + 5] ==  F  && data[i + 6] == 0x00)
        {
            //Retrieve the block length of the first block since the first block will not contain the size of file
            var block_length = data[i] * 256 + data[i + 1];
            while (i < data_size)
            {
                i += block_length;               //Increase the file index to get to the next block
                if (i >= data_size) return false;   //Check to protect against segmentation faults
                if (data[i] != 0xFF) return false;   //Check that we are truly at the start of another block
                if (data[i + 1] == 0xC0)
                {            //0xFFC0 is the "Start of frame" marker which contains the file size
                    //The structure of the 0xFFC0 block is quite simple [0xFFC0][ushort length][uchar precision][ushort x][ushort y]
                    height = data[i + 5] * 256 + data[i + 6];
                    width = data[i + 7] * 256 + data[i + 8];
                    return true;
                }
                else
                {
                    i += 2;                              //Skip the block marker
                    block_length = data[i] * 256 + data[i + 1];   //Go to the next block
                }
            }
            return false;                     //If this point is reached then no size was found
        }
        else { return false; }                  //Not a valid JFIF string

    }
    else { return false; }                     //Not a valid SOI header
}

USAGE:

using (var stream = File.OpenRead(path))
{
    using (var m = new MemoryStream())
    {
        stream.CopyTo(m);
        var arr = m.ToArray();
        int w = 0, h = 0;

        get_jpeg_size(arr, arr.Length, ref w, ref h);
        Console.WriteLine(w + "x" + h);
    }
}

Imports iTextSharp.text

仅仅是在制造假肢时使用的工具。

         Dim URel As String
            URel = "https://......."

            Dim pic As iTextSharp.text.Image
            pic = iTextSharp.text.Image.GetInstance(URel)
            Dim sizee As String
            sizee = pic.Height
            SOURR = "<img src= " & URel & "  alt=   />"

I had my images in a listview as an ImageButton and i needed their width and height so i found the solution here: http://forums.asp.net/t/1262878.aspx?how+to+get+the+image+width+and+height+argh

及其工作守则:

    ListViewItem item = e.Item;
    ImageButton img = item.FindControl("img") as ImageButton;

    FileStream fs = new FileStream(MapPath(img.ImageUrl) , FileMode.Open, FileAccess.Read, FileShare.Read);
    System.Drawing.Image dimg = System.Drawing.Image.FromStream(fs);
    int width = Convert.ToInt32(dimg.Width);
    int height = Convert.ToInt32(dimg.Height);

我希望这有助于你。

进口系统。 资料来源:系统。 IO

Dim image As System.Drawing.Image

image = image.FromFile([filepath])

If image.Width > 440 Or image.Height > 440 Then
 show resized
else
 leave as is
end if
Imports System.IO

Imports System.Drawing                                   

Dim sFile As Stream = fuPhoto2.PostedFile.InputStream

Dim img As System.Drawing.Image = System.Drawing.Image.FromStream(sFile)

If img.PhysicalDimension.Width > 700 And img.PhysicalDimension.Height > 300 Then

   strPhotoName = fuPhoto2.FileName

   fuPhoto2.SaveAs(Server.MapPath("~/Images/") + 
fuPhoto2.FileName)                                 

Else

   lblErrMeg2.Text = "Image size must be greater than 700 X 300!"

   fuPhoto2.Focus()

   Exit Sub

End If




相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

How to Add script codes before the </body> tag ASP.NET

Heres the problem, In Masterpage, the google analytics code were pasted before the end of body tag. In ASPX page, I need to generate a script (google addItem tracker) using codebehind ClientScript ...

Transaction handling with TransactionScope

I am implementing Transaction using TransactionScope with the help this MSDN article http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx I just want to confirm that is ...

System.Web.Mvc.Controller Initialize

i have the following base controller... public class BaseController : Controller { protected override void Initialize(System.Web.Routing.RequestContext requestContext) { if (...

Microsoft.Contracts namespace

For what it is necessary Microsoft.Contracts namespace in asp.net? I mean, in what cases I could write using Microsoft.Contracts;?

Separator line in ASP.NET

I d like to add a simple separator line in an aspx web form. Does anyone know how? It sounds easy enough, but still I can t manage to find how to do it.. 10x!

热门标签