Ein- und Ausgabebibliotheken für Grafikformate?



  • Hi(gh)!

    @Finnegan sagte in Ein- und Ausgabebibliotheken für Grafikformate?:

    @Yadgar Ist ja schön, dass das so simpel ist. Das wünscht man sich oft, wenn man einfach nur mit Pixeldaten hantieren will.

    Die "ominösen 5 Bytes" kann ich dir erklären: die 255 ist der Alpha-Wert des einen Pixel. 255 bedeutet "völlig deckend". Die anderen 4 Bytes kommen von dem

    s = sizeof(data);

    Damit bestimmst du nämlich die Größe des unsigned char* (Pointer) und der ist auf einem 64-Bit-System üblicherweise immer 8 😛

    Wenn ich mir n (das ist die Anzahl der Kanäle) ausgeben lasse wird 4 angezeigt! Klar, der in *char gespeicherte Adresswert kann sich von Lauf zu Lauf leicht ändern, was das Byte Nr. 4 erklären würde... dann kann *char aber auch nicht 8 Bytes groß sein, sondern nur 4 (Bytes Nr. 4 bis 7)!

    Versuch es mal mit: s = x * y * n; ... das sollte dem was du vermutlich vorhast näher kommen.

    Gut, als Nächstes dann eine etwas(!) größere GIF-Datei!



  • @Yadgar sagte in Ein- und Ausgabebibliotheken für Grafikformate?:

    Wenn ich mir n (das ist die Anzahl der Kanäle) ausgeben lasse wird 4 angezeigt! Klar, der in *char gespeicherte Adresswert kann sich von Lauf zu Lauf leicht ändern, was das Byte Nr. 4 erklären würde... dann kann *char aber auch nicht 8 Bytes groß sein, sondern nur 4 (Bytes Nr. 4 bis 7)!

    Ich tu mich echt schwer zu verstehen, welchem Missverständnis du hier unterliegst. sizeof(char*) == sizeof(void*) == sizeof(data) (data aus deinem Programm). Du bestimmst nicht die "Größe der Daten", sondern die Größe des Pointers, der auf diese Daten zeigt. Der muss 8 sein, weil du diese Zahl als s als Eintrittsbedingung deiner Ausgabeschleife verwendest und 8 Elemente angezeigt werden (die Schleife läuft von 0 bis s - 1, also 0 bis 7, was 8 Elemente sind). Die Ersten 4 angezeigten Elemente stammen aus der geladenen Datei, die restlichen 4 sind Datenmüll, weil das ein Buffer Overflow ist und du uninitialisierten Speicher liest, der beliegbige Daten beinhalten kann. Nur die ersten 4 bytes wurden von stbi_load in dem Speicher abgelegt. Die restlichen 4 waren bereits vorher da (oder sind eventuell irgendwelche Metadaten von stb, was ich aber für eher unwahrscheinlich halte).



  • Hmm, klassische Anfängerfehler... Wieso muss man dann eigentlich gleich mit Grafik, Image Processing und einer eigenen Lib anfangen - anstatt erstmal die Basics zu lernen? Erinnert mich an Vibe Coding... das scheint nun in zu sein. Wenn ich hoch hinaus will, fange ich ja auch nicht gleich mit dem Himalaya an.



  • @Anon-81275 Lustigerweise ist das genau das, was ich auch gemacht habe, als mir solche Dinge noch nicht klar waren. Und retrospektiv muss ich sagen, dass man meines Erachtens deutlich schneller lernt, wenn man ohne die verdammten Schwimmflügelchen ins Wasser springt. Man wächst mit seinen Aufgaben.

    Viel wichtiger finde ich, dass man seine eigenen Grenzen kennt und nicht glaubt, die Weisheit mit Löffeln gefressen zu haben, nur weil man ein paar Grundlagen kennt. Du magst mit dem Kommentar vielleicht vorgehabt haben, toll auszusehen, um dein Ego zu polieren, das dürfte aber nur bei Leuten funktionieren, die dich noch nicht kennen. Für andere kommt das eher anmaßend und altklug rüber (zumindest für mich). Vielleicht hebst du dir solche Kommentare besser für diejenigen Foren auf, in denen du nicht bereits 20 mal gebannt wurdest und wo die Teilnehmer noch nicht wissen, dass du lediglich ein Blender bist.



  • @Finnegan sagte in Ein- und Ausgabebibliotheken für Grafikformate?:

    wenn man ohne die verdammten Schwimmflügelchen ins Wasser springt.

    Basics sind keine "Schwimmflügelchen", sondern eine solide Basis, ohne die weitergehende Leistungen gar nicht möglich sind... Nenn' mich gerne Spielverderber, aber Quereinsteiger, bzw. Leute, die immer vorgeben, ganz viiiel Ahnung zu haben, die sie in Wirklichkeit aber nicht haben, sind für mich nicht viel mehr als Münchhausener (volkstümlich auch als Hochstapler bekannt).

    @Finnegan sagte in Ein- und Ausgabebibliotheken für Grafikformate?:

    Für andere kommt das eher anmaßend und altklug rüber (zumindest für mich).

    @Finnegan sagte in Ein- und Ausgabebibliotheken für Grafikformate?:

    dass du lediglich ein Blender bist.

    Bullshit. Versuch' mal wieder, in die Realität zu gelangen. Ich brauche hier keinem Honig ums Maul schmieren. Das kannst du vergessen. Byebye. 😉


  • Gesperrt

    Dieser Beitrag wurde gelöscht!


  • Yes, as Matthew correctly pointed out, the person asking the question is making typical beginner's mistakes and is comparing apples to oranges. Apparently, however, this can no longer be addressed openly without being harshly criticized by other participants in this forum.



  • @Anon-81275
    Aber desshalb wechselt man doch nicht die Sprache 🤔.
    Alie, mi simple komencos per Esperanto.


  • Mod

    @Helmut-Jakoby sagte in Ein- und Ausgabebibliotheken für Grafikformate?:

    @Anon-81275
    Aber desshalb wechselt man doch nicht die Sprache 🤔.
    Alie, mi simple komencos per Esperanto.

    Da kommt dann im nächsten Beitrag oder in einem baldigen Edit der Werbelink. Ziemlich offensichtlicher Spambot, und natürlich ist es Anon, der denkt, der Bot würde ein Gespräch mit ihm führen.



  • @SeppJ sagte in Ein- und Ausgabebibliotheken für Grafikformate?:

    Da kommt dann im nächsten Beitrag oder in einem baldigen Edit der Werbelink.

    Ja! Das (der Werbelink) wurde jetzt hineineditiert... Tut mir leid, da war ich nicht weitsichtig genug... Aber ich sitze ja, im Vergleich zu den Mods, auf der anderen Seite vom Teich.

    聊天机器人越来越聪明了!


  • Mod

    Na, gut, ich kann die Wegwerfemailadresse sehen, du nicht. Aber sonst: Offensichtlich LLM-generierter Text, der einfach nur dem letzten Beitrag zustimmt? In anderer Sprache? Von einem neuen Nutzer? Was soll das sonst werden außer Spam? Da hat sich doch niemand im Forum angemeldet, bloß um dir mit lauter Allgemeinfloskeln zuzustimmen.

    Vielleicht habe ich aber auch eine andere Perspektive hinsichtlich Erkennen von Spammern, als der Druchschnittsnutzer. Ich mache das schon viel zu lange.



  • @SeppJ sagte in Ein- und Ausgabebibliotheken für Grafikformate?:

    lauter Allgemeinfloskeln

    Attitüden?, ja. Aber die Unwahrheit?, nein.

    @SeppJ sagte in Ein- und Ausgabebibliotheken für Grafikformate?:

    Ich mache das schon viel zu lange.

    Ich auch. Zum Beispiel ist meine Vermutung, dass sich @Finnegan bei dir ausgeheult haben wird, um eine Sperre zu erwirken, aber der TO (also @Yadgar) noch auf ebenjene Sperre wartet...

    So, ich nehme mir nun die freiheit, in diesem Thema nicht mehr zu antworten. 😉


  • Mod

    @Anon-81275 sagte in Ein- und Ausgabebibliotheken für Grafikformate?:

    Ich auch. Zum Beispiel ist meine Vermutung, dass sich @Finnegan bei dir ausgeheult haben wird, um eine Sperre zu erwirken, aber der TO (also @Yadgar) noch auf ebenjene Sperre wartet...

    Lolololol.


Anmelden zum Antworten