Autor Beitrag
Mile1975!
Hält's aus hier
Beiträge: 3

Win11 Pro
c#, XAML
BeitragVerfasst: Fr 09.09.22 07:15 
Guten Tag,

ich erstelle gerade ein kleines Tool, womit ich PNG - Dateien laden möchte, anzeigen und wenn es sein muss, die Transparenz entferne und gegen einen weißen Hintergrund austauschen möchte. Wenn ich die Datei als JPG speichere, macht das Programm das auch. Allerdings ist der HG mal weiß, mal schwarz. Ich weiß nicht, ob ich falsch gesucht habe, aber ich habe nicht wirklich was Brauchbares gefunden, wo ich mit umgehen könnte.

Vielleicht hat ja jemand eine Lösung oder zumindest einen Tipp, wo ich noch suchen könnte.

Hier einmal der Code zum Programm.

1 x PictureBox
4 x Buttons

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing.Imaging;

namespace Lemke_ImageConv
{
    public partial class Form1 : For
    {
        Image file;
        Boolean opened = false;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.Text = "Lemke - ImageConv";
        }

    //Bild laden
        private void button1_Click(object sender, EventArgs e)
        {
            DialogResult dr = openFileDialog1.ShowDialog();

            if(dr == DialogResult.OK)
            {
                file = Image.FromFile(openFileDialog1.FileName);
                pb_image.Image = file;
                opened = true;
            }
        }

    //Programm beenden
        private void button2_Click(object sender, EventArgs e)
        {
            Close();
        }

    //Bild als jpg laden
        private void btnConvert_Click(object sender, EventArgs e)
        {
            DialogResult dr = saveFileDialog1.ShowDialog();

            if (dr == DialogResult.OK)
            {
                if (opened)
                {
                    if(saveFileDialog1.FileName.Substring(saveFileDialog1.FileName.Length - 3).ToLower() == "jpg")
                    {
                        file.Save(saveFileDialog1.FileName, ImageFormat.Jpeg);
                    }
                }
                else
                {
                    MessageBox.Show("Bitte erst ein Bild laden!");
                }
            }
        }

    //Transparenz entfernen und gegen weiß ersetzen
        private void btnHGW_Click(object sender, EventArgs e)
        {
           //ToDo: Hier der Code für Transparenz weg und HG weiß hinzugefügt.
        }

    }
}


Moderiert von user profile iconTh69: Topic aus C# - Die Sprache verschoben am Fr 09.09.2022 um 09:21
Moderiert von user profile iconTh69: Code- durch C#-Tags ersetzt
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 09.09.22 08:57 
Hallo und :welcome:

Erstelle dir ein neues Bild (new Bitmap(Größe, ...), FromImage), fülle es komplett mit der gewünschten Hintergrundfarbe (Clear) und zeichne dein Bild darüber (DrawImageUnscaled). Dann kannst du das neue Bild speichern.

Ob man den Alphakanal auch direkt entfernen kann, weiß ich nicht.

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Mile1975! Threadstarter
Hält's aus hier
Beiträge: 3

Win11 Pro
c#, XAML
BeitragVerfasst: Fr 09.09.22 09:15 
Vielen Dank für die Antwort. Das werde ich heute Nachmittag direkt mal probieren...
Gr. Micha
Mile1975! Threadstarter
Hält's aus hier
Beiträge: 3

Win11 Pro
c#, XAML
BeitragVerfasst: Di 13.09.22 17:09 
user profile iconMile1975! hat folgendes geschrieben Zum zitierten Posting springen:
Vielen Dank für die Antwort. Das werde ich heute Nachmittag direkt mal probieren...
Gr. Micha


Noch in Arbeit.. 13.09.22