C# :: TIF Kompression einstellen

C# Kein Kommentar »

Bei der Erstellung (Konvertierung) von TIF-Images kann man im Bereich der TIF-Kompression einiges einstellen. Allerdings bedarf es hier eines Encoders sowie einer EncoderInfo-Hilfsfunktion:

private static ImageCodecInfo GetEncoderInfo(string mimeType)
{
  ImageCodecInfo[] encoders;
  encoders = ImageCodecInfo.GetImageEncoders();
  for (int i = 0; i < encoders.Length; i++)
    {
        if (encoders[i].MimeType == mimeType)
            return encoders[i];
    }
  return null;
}

Die eigentliche Umsetzung ist dann relativ simple:

Image img = Image.FromFile(“C:\\TestDatei.jpg”);

//z.B. TIFF FAX G4 ERZEUGEN
ImageCodecInfo ImgCodecInfo = GetEncoderInfo(“image/tiff”);
Encoder ImgEnc = Encoder.Compression;
EncoderParameters ImgEncParas = new EncoderParameters(1);

EncoderParameter ImgEncPara = new EncoderParameter(ImgEnc, (long)EncoderValue.CompressionCCITT4);

ImgEncParas.Param[0] = ImgEncPara;

 //SPEICHERN
img.Save(“C:\\NeuerDateiName.tif”, ImgCodecInfo, ImgEncParas);

C# :: Countdown erstellen

C# Kein Kommentar »

Um einen Countdown in Minuten und Sekunden (25:37…25:36…) auf einem Windows Form zu erstellen brauchen wir:
- ein Label (label1)
- einen Timer (timer1)
- eine kleine Funktion (ConvertToTime)

Erstmal zwei kleine Variablen:

long CountDownTime = 1800;
//Sekunden, die heruntergezählt werden
int CountDownAbgelaufen = 0
//Lässt den Countdown negativ weiterlaufen

Jetzt die Funktion, die uns ein Wert in das passende Format zurlegt:

public string ConvertToTime(long tickCount)
{
   long seconds = tickCount;
   string val = (seconds / 60).ToString(“00″) + “:” + (seconds % 60).ToString(“00″);
   return val;
}

Das Form_Load():

private void Form1_Load(object sender, EventArgs e)
{
    label1.Text = ConvertToTime(CountDownTime);
    timer1.Enabled = true;
}

Das timer1_tick()-Event:

private void timer1_Tick(object sender, EventArgs e)
{
    if (CountDownTime == 0)
        CountDownAbgelaufen = 1;

    if (CountDownAbgelaufen == 0)
        CountDownTime–;
    else
        CountDownTime++;

    if (CountDownAbgelaufen == 0)
        label1.Text = ConvertToTime(CountDownTime);
    else
    {
       label1.Text = “- “ + ConvertToTime(CountDownTime);
       label1.ForeColor = Color.Red;
    }
}

Fertig!

C# :: Pfad zur ausgeführten DLL ermitteln

C# Kein Kommentar »

Während man innerhalb einer Windows-Forms-Anwendung den aktuellen Pfad zur EXE-Datei über

Application.StartupPath;

abrufen kann, steht diese Funktion in einer DLL nicht zur Verfügung, da der Namespace System.Windows.Forms natürlich nicht genutzt werden kann…

Hier hilft diese Syntax:

typeof(MyClassName).Assembly.Location;

C# :: MessageBox Result auswerten

C# Kein Kommentar »

Eine Messagebox wird wohl in jedem Programm irgendwo verwendet. Neben der einfachen OK-Hinweismeldung kann man aber auch das Ergebnis einer JA-NEIN-Box auswerten:

// die Dialogbox zusammenbauen
DialogResult Ergebnis = MessageBox.Show(“Ist das eine Frage?”,
      “Der Titel der Box”,
      MessageBoxButtons.YesNoCancel,
      MessageBoxIcon.Question,
      MessageBoxDefaultButton.Button2);

// das Ergebnis auswerten
if (Ergebnis == DialogResult.Yes)
{
     MessageBox.Show(“Du hast JA geklickt”, “Der Titel der Box”);
}


11594 | 20081029