Laden...

Beliebige Bilder in CMYK und 300dpi umwandeln

Erstellt von iginaz vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.689 Views
I
iginaz Themenstarter:in
14 Beiträge seit 2007
vor 13 Jahren
Beliebige Bilder in CMYK und 300dpi umwandeln

Mahlzeit zusammen,

ich hab von meinem Chef die Aufgabe bekommen eine ASP.net Seite zu schreiben die es ermöglicht ein Bild hoch zu laden, einen gewissen Bereich des Bildes aus zu wählen um dann den ausgewählten Bereich als Bild zu speichern und um zu wandeln in des was wir brauchen. Des mit dem Upload und auswählen funktioniert auch soweit alles super. So aber jetzt komme ich zur Bildmanipulation.

Ich bekomme durch den Upload ein Bild:*Format jpg *dpi: unterschiedlich *Farbraum: alles durch die Bank

So das Bild soll jetzt so formatiert werden:*Format jpg (hab ich ja schon 😃 ) *dpi: 300 *Farbraum: CMYK

So jetzt hab ich auch schon mal google und die SuFu befragt. Zum Thema wie bring ich die dpi Anzahl raus hab ich nix gefunden oder ich such falsch (nobody is perfect). Zum Farbraum hab ich nur gefunden das .net nur RGB kann stimmt das noch, da der neuste Post dazu von 2008 war?

Vielleicht kann mir ja von euch jemand helfen.

Gruß Iginaz

5.658 Beiträge seit 2006
vor 13 Jahren

Wegen dem CMYK-Farbraum, schau erstmal, was es dazu schon im Forum gibt.

Wegen der Auflösung in DPI, schau dir mal die BitmapSource.Create-Methode an: BitmapSource.Create-Methode (Int32, Int32, Double, Double, PixelFormat, BitmapPalette, Array, Int32)

Christian

Weeks of programming can save you hours of planning

2.921 Beiträge seit 2005
vor 13 Jahren

@iginaz: such im Forum nach CMYK und Poste die besten Treffer hier

CMYK Problem

Außerdem hatte ich angedacht das ganze in die LowLevelGraphicsLibrary einzufügen.

Ob der Code richtig sein kann hab ich nicht überprüft. Er ist auch nicht getestet bisher.


  /// <summary>
  /// Used to calculate new channel values from rgb
  /// This is a simple formula WITHOUT ICC (Color management)
  /// </summary>
  protected override void CalcValues()
  {
            int nR = m_Color.R;
            int nG = m_Color.G;
            int nB = m_Color.B;

            m_K = Math.Min(Math.Min(255 - nR, 255 - nG), 255 - nB);
            m_C = (255 - nR - m_K) / (255 - m_K);
            m_M = (255 - nG - m_K) / (255 - m_K);
            m_Y = (255 - nB - m_K) / (255 - m_K); 
  }

Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.