Avatar billede -xyz- Nybegynder
11. marts 2005 - 14:42 Der er 9 kommentarer og
1 løsning

Image resize 2: Nyt problem

Ja jeg var vidts lidt for hurtig før, jeg får følgende fejl nu:

System.Runtime.Interopservices.ExternalException: A Generic error occured in GDI+
At System.Drawing.Image.Save(String Filename, ..-...

Min kode ser ud som følger:

#region Using directives

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using System.IO;


#endregion

namespace ImgConverter
{
    partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void label1_Click(object sender, EventArgs e)
        {
       
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string[] dirs = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.jpg");
            DirectoryInfo nyDir = Directory.CreateDirectory(Directory.GetCurrentDirectory() + "\\billeder\\");
            foreach (string dir in dirs)
            {
                try
                {
                    Bitmap img = new Bitmap(dir);
                    img = ResizeBitmap(img, 800, 600);
                    img.Save(dir);
                    listBox1.Items.Add("Filen: " + dir + " blev konverteret til: " + dir + ", i formatet 800x600");
                }
                catch (Exception E)
                {
                    MessageBox.Show(E.ToString());
                    listBox1.Items.Add("Filen: " + dir + " kunne ikke konverteres");
                }
            }


        }
        public Bitmap ResizeBitmap(Bitmap b, int nWidth, int nHeight)
        {
            Bitmap result = new Bitmap(nWidth, nHeight);
            using (Graphics g = Graphics.FromImage((Image)result))   
            g.DrawImage(b, 0, 0, nWidth, nHeight);
            return result;
        }

    }
}

Håber i kan hjælpe

Kenneth
Avatar billede spif2001 Nybegynder
11. marts 2005 - 14:50 #1
Er filen(billedet) readonly? Ellers prøv at gemme ned i en ny fil(billede)
Avatar billede -xyz- Nybegynder
11. marts 2005 - 15:00 #2
Ja, det leder mig så til mit næste spm. hvordan får jeg filnavnet uden sti?
Avatar billede -xyz- Nybegynder
11. marts 2005 - 15:14 #3
Jeg har fået det til at virke hvis jeg bruger en iterator til at tælle filnavnet op, så de hedder 0.jpg, 1.jpg osv, men jeg ville jo gerne have dem til at hedde det originale filnavn..
Avatar billede spif2001 Nybegynder
11. marts 2005 - 15:23 #4
Jeg er ikke skide stiv i det med filer, men du kan jo gemme det nye billede i ny fil. Slette den gamle fil og så gemme den nye fil med den gamles navn.
Avatar billede -xyz- Nybegynder
11. marts 2005 - 15:26 #5
Ja, men problemet er at jeg ikke vil slette den gamle fil, og Directory.GetFiles() returnerer en streng der ser nogenlunde sådan ud: C:\mappe\entil\ogenmere\filnavn.fil
og jeg vil kun have filnavn.fil UDEN sti så jeg leder efter en metode der fjerner stien, eller ikke sender den med..
Avatar billede spif2001 Nybegynder
11. marts 2005 - 15:30 #6
Path.GetFileName(ditFilNavn);
Avatar billede spif2001 Nybegynder
11. marts 2005 - 15:32 #7
Path.GetFileName(dinFullPath); -sorry
Avatar billede -xyz- Nybegynder
11. marts 2005 - 15:39 #8
Super mange tak smid et svar
Avatar billede segato Nybegynder
11. marts 2005 - 15:40 #9
Det jo lidt logisk du ikke kan have 2 filer liggende samme sted med samme navn. Så hvis du ikke vil overskrive din gamle fil og de skal hedde det samme må du ligge billederne i to forskellige foldere.
Avatar billede spif2001 Nybegynder
11. marts 2005 - 16:27 #10
u r welcome
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