Avatar billede alpapa Nybegynder
12. juli 2003 - 00:09 Der er 10 kommentarer og
1 løsning

Resize et uploaded billede proportionalt

Hejsa alle

Hvordan kan jeg proportionalt resize et uploaded billede ved kun at angive en ny bredde?

upload_file.PostedFile.SaveAs(Server.MapPath("\\dataentry\\pic\\test.jpg"));

System.Drawing.Image image = System.Drawing.Image.FromFile(Server.MapPath("\\dataentry\\pic\\test.jpg"));

System.Drawing.Image thumbImage = image.GetThumbnailImage(Convert.ToInt32(iWidth.Text),Convert.ToInt32(iHeight.Text),null,IntPtr.Zero);

image.Dispose();

thumbImage.Save(Server.MapPath("\\dataentry\\pic\\test.jpg"), ImageFormat.Jpeg);

iWidth.Text og iHeight.Text angiver jeg i TextBox

På forhånd tak
alpapa
Avatar billede nielslbeck Nybegynder
12. juli 2003 - 00:13 #1
GetThumbnailImage er kun til hvis det virkelig er thumbnails du vil lave - dvs små (meget små) thumbnails, til gengæld går det relativt hurtigt. Hvis du vil resize et billede uden at gøre det total grimt, skal du bare lave et nyt billede med det samme indhold, men med en anden størrelse... hvis man kan sige det sådan :-)

double newWidth = 550;
Bitmap b = new Bitmap(file.InputStream);
if (b.Width > newWidth) {
    Size newSize = new Size(newWidth, (int)(newWidth/b.Width * b.Height));
    b = new Bitmap(b, newSize);
}
b.Save(Sti + Filnavn, System.Drawing.Imaging.ImageFormat.Jpeg);
Avatar billede alpapa Nybegynder
12. juli 2003 - 00:23 #2
Okay - så skal jeg selv definere en ny quality på billedet formoder jeg?

Hvilke namespaces skal importeres?
Importerer understående men med følgende fejl:
'System.Web.UI.HtmlControls.HtmlInputFile' does not contain a definition for 'InputStream'

<% @ Import namespace="System" %>
<% @ Import namespace="System.IO" %>
<% @ Import namespace="System.Drawing" %>
<% @ Import namespace="System.Drawing.Imaging" %>
Avatar billede nielslbeck Nybegynder
12. juli 2003 - 00:28 #3
Nej okay, du skal så bruge:

Bitmap b = new Bitmap(upload_file.PostedFile.InputStream);

Sorry...
Avatar billede alpapa Nybegynder
12. juli 2003 - 00:39 #4
Har stadig lidt problemer med en linie:

Size newSize = new Size(newWidth, (int)(newWidth/b.Width * b.Height));

The best overloaded method match for 'System.Drawing.Size.Size(int, int)' has some invalid arguments.
Avatar billede nielslbeck Nybegynder
12. juli 2003 - 00:42 #5
Ups, endnu en fejl... her skal der stå:

Size newSize = new Size((int)newWidth, (int)(newWidth/b.Width * b.Height));

Jeg er altså ikke så god til de her spørgsmål så sent på aftenen :-(
Avatar billede alpapa Nybegynder
12. juli 2003 - 00:44 #6
Jeg er da glad for at du gider hjælpe ;->
Avatar billede nielslbeck Nybegynder
12. juli 2003 - 00:46 #7
Tja... når man ikke kan få sine egne ting til at fungere, kan man jo ligeså godt arbejde med andres :-)
Avatar billede alpapa Nybegynder
12. juli 2003 - 00:50 #8
Nu virker det perfekt - tak for hjælpen.
Hæhæ - hvad roder du med?
Avatar billede nielslbeck Nybegynder
12. juli 2003 - 00:52 #9
Udmærket :-)

Er ved at arbejde på et større projekt... sidder og roder i SQL Serveren med en database til et CMS...
Avatar billede alpapa Nybegynder
12. juli 2003 - 00:55 #10
Great - jamen, go' arbejdslyst og held & lykke.

alpapa
Avatar billede nielslbeck Nybegynder
12. juli 2003 - 00:57 #11
Jo tak - og i lige måde :-)
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