Avatar billede jobdollas Nybegynder
22. juni 2005 - 14:43 Der er 4 kommentarer og
1 løsning

simpel matematik fra ASP til c#

Jeg har dette i asp
newHeigth = (newWidht/orgWidth)*orgHeight

og har prøvet dette i c#
newHeigth = (newWidht/orgWidth)*orgHeight;

Hvordan stiller jeg det rigtigt op i c# ?
Avatar billede arne_v Ekspert
22. juni 2005 - 14:46 #1
er det ikke ordentligt som skrevet ?

hvis det er int variable (som ikke er for store) skal du nok:

newHeigth = (newWidht*orgHeight)/orgWidth;
Avatar billede arne_v Ekspert
22. juni 2005 - 14:47 #2
hvis de er int og store så:

newHeigth = (int)((newWidht/(double)orgWidth)*orgHeight);
Avatar billede jobdollas Nybegynder
22. juni 2005 - 14:48 #3
Nej, det fungere ikke...

Hvis jeg udskifter:
(newWidht/orgWidth)*orgHeight;
med
100;
så virker det fint.



hele filen er:
---

<%@ Page Language="C#" %>
<%@ import Namespace="System" %>
<%@ import Namespace="System.Collections" %>
<%@ import Namespace="System.Drawing.Imaging" %>
<script runat="server">

    public enum SizeConversionType
    {
        Type1

    }
   
    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;
   
        orgImage.Dispose();
   
        int newWidht = 0;
        int newHeigth = 0;
   
        switch(ConversionType)
        {
            case SizeConversionType.Type1 :
                if(orgWidth == 480 && orgHeight == 640)
                {
                    newWidht = 100;
                    newHeigth = (newWidht/orgWidth)*orgHeight;
                }
                else if(orgWidth == 640 && orgHeight == 480)
                {
                    newWidht = 100;
                    newHeigth = newWidht/orgWidth*orgHeight;
                }
                else
                {
                    newWidht = 100;
                    newHeigth = newWidht/orgWidth*orgHeight;
                }
                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>
Avatar billede jobdollas Nybegynder
22. juni 2005 - 14:49 #4
Dit andet eks. virkede...

Du er en skat. :)

smider du et svar...
Avatar billede arne_v Ekspert
22. juni 2005 - 15:00 #5
ok
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