Avatar billede gadebarnet Nybegynder
14. november 2005 - 13:55 Der er 3 kommentarer

skal regne proportioner på billede

Kode:
--------
<%@ Page Language="C#" %>
<%@ import Namespace="System" %>
<%@ import Namespace="System.Collections" %>
<%@ import Namespace="System.Drawing.Imaging" %>



<script runat="server">

    public enum SizeConversionType
    {
        Type1,
        Type2
    }
   
    private const string IMAGE_FOLDER = "";
   
    protected SizeConversionType ConversionType
    {
        get
        {
            object o = Request.QueryString["SizeConversionType"];
            try
            {
                return (SizeConversionType)Enum.Parse(typeof(SizeConversionType), o.ToString(), true);
            }
            catch
            {
                return SizeConversionType.Type1;
            }
        }
    }
   
    protected string ImageFileName
    {
        get
        {
            return (object)Request.QueryString["ImageFileName"] != null ? Request.QueryString["ImageFileName"] : null;
        }
    }
   
    protected void Page_Load(object sender, System.EventArgs e)
    {
        string path = Server.MapPath(IMAGE_FOLDER + ImageFileName);
        System.Drawing.Image orgImage = System.Drawing.Image.FromFile(path);
   
        int orgWidth = orgImage.Width;
        int orgHeight = orgImage.Height;
        int regn1;
        int regn2;
        int regn3;
        orgImage.Dispose();
   
        int newWidht = 0;
        int newHeigth = 0;
   
        switch(ConversionType)
        {
            case SizeConversionType.Type1 :
        newWidht = 150;
        regn1 = (newWidht/orgWidth);
        regn2 = (regn1*orgHeight);
        newHeigth = 1000;
        break;
            case SizeConversionType.Type2 :
                if(orgWidth == 480 && orgHeight == 640)
                {
                newWidht = 62;
                    newHeigth = 82;
                }
                else if(orgWidth == 640 && orgHeight == 480)
                {
                    newWidht = 110;
                    newHeigth = 82;
                }
                else
                {
                    newWidht = 550;
                    newHeigth = 412;
                }
                break;
        }
   
        System.Drawing.Image image = ImageResizer.RezizeImage(path, newWidht, newHeigth);
        Response.ContentType = "image/jpeg";
        image.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);
        image.Dispose();
    }
   
    public class ImageResizer
    {
        public static System.Drawing.Bitmap RezizeImage(string filePath, int width, int height)
        {
            System.Drawing.Bitmap bmpOut = null;
   
            try
            {
                System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(filePath);
   
                bmpOut = new System.Drawing.Bitmap(width, height);
                System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmpOut);
                g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                g.FillRectangle(System.Drawing.Brushes.White, 0, 0, width, height);
                g.DrawImage(bmp, 0, 0, width, height);
                bmp.Dispose();
            }
            catch
            {
                return null;
            }
   
            return bmpOut;
        }
    }

</script>
<html>
<head>
</head>
<body>
</body>
</html>
------------

regn1 = (newWidht/orgWidth);
regn2 = (regn1*orgHeight);
newHeigth = 1000;
break;

Det er min måde at få de rigtige proportioner... Men der er noget galt... HJÆLP...

Den fejler når jeg prøver at sætte højden til regn2...
Avatar billede snepnet Nybegynder
14. november 2005 - 15:10 #1
med hvilken fejl?
mvh
Avatar billede gadebarnet Nybegynder
15. november 2005 - 10:43 #2
regne fejl... Den vil ikke afrunde min regn2  variabel.
Avatar billede snepnet Nybegynder
16. november 2005 - 18:17 #3
hvis du vil have den skal være en int - skal du eksplicit caste.
du kan også resikere at miste information på din regn1.... heltal divideret med heltal giver ikke nødvendigvis et heltal.
mvh
(du må gerne sende den exception du får)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester