Wie Bearbeiten Sie ein Bild auf pixel-Ebene in C?

Wie lese ich ein Bild in C, so dass ich direkte Kontrolle über Ihre Pixel (wie in MATLAB)?

Ich habe versucht, die alte Weise:

FILE *fp;
fp = fopen("C:\\a.tif","r");

dass nur gibt mir die ascii form der Bild-Datei (glaube ich).

Wie bekomme ich die pixel-level-Kontrolle über das Bild und führen Sie einige grundlegende Operationen, wie z.B. das invertieren der Bild?

  • C ist etwas niedriger als Sie scheinen zu denken, es ist. Dass fopen gibt dir raw binary, und es ist bis zu Ihnen, um entweder herauszufinden, wie das zu interpretieren binäre als ein Bild, oder benutzen Sie eine Bibliothek wie unten vorgeschlagen.
  • das hat er ausdrücklich gefragt, wie diese decodieren die Dateien, nicht die binären Inhalte. Ich fühle, dass C ist eine bessere option, wenn Sie möchten, dass das Programm zu schnell, sonst Python bietet PIL, das ist gut genug.
  • Dass fopen() ist, so dass Sie keine solche rohen binären, es gibt Ihnen text-Modus, was bedeutet, dass es wahrscheinlich Lesen einige Dateien nicht korrekt auf Windows.
  • Aber auf Linux-und UNIX ist es in Ordnung.
  • das Tat er nicht, er fragte, wie die Pixel Bearbeiten, wie er in matlab. Ich habe noch nie verwendet, matlab, aber ich vermute, es hoch genug, um nicht zu erzwingen, dass der Benutzer zum decodieren von binären Rohdaten in ein Bild. Ich bin lediglich darauf hingewiesen, dass C ist nicht so, dass hohes Niveau, und es nicht verstehen Bilder ohne eine Bibliothek oder ohne schreiben Sie ein Programm zum decodieren des binären komprimierten Informationen in den pixel-Daten. @Lutz, oh Recht, ich denke, es braucht eine "b" - flag oder so? Ich war nicht bewusst, dass C eine Unterscheidung zwischen text und Binär.
InformationsquelleAutor Moeb | 2009-10-20
Schreibe einen Kommentar