[Aufgabenstellung] Programmierwettbewerb Nr 4

Ich weiß nicht warum die UTF-8 Komponente unter Linux solche Probleme macht beim kompilieren, aber ich habe gerade kein lauffähiges Linux-System um das zu testen. Hier ist der selbe Stand nochmal, aber als Release-Build (dieses Mal mit benötigten DLLs) und der Source Code ohne die nicht benötigten Files.
Windows Binaries:
Source Code (C++):
Falls es immer noch nicht läuft sagt bescheid.
 
Konnte kompilieren und hab schon hart gefailed :D

Hab ein Video erstellt, hoffe das ist okay: - wenn nicht, nehme ich es wieder raus:


Soll eigentlich nur zeigen, jawohl, geht (allerdings ohne den coolen Sound...) . - Habe übrigens it "cmake-gui" gebaut, wesentlich besser als mit der Kommandozeile.
 
Anhang anzeigen Mondlandung.zip
Ganz unspektakulär meine Version.
Sie ist wie bereits mehrfach erwähnt relativ weit weg von fertig, doch immerhin sind die generellen Funktionen vorhanden oder können vermutlich relativ einfach erweitert werden.

Der Code ist leider auch noch nicht "aufgeräumt" worden, sollte aber relativ verständlich sein, was wo passieren soll.

Vorraussetzungen: Ein Browser mit aktiviertem Javascript.

Anpassungen der Lösung sind gerne gesehen.
 
Wie ist denn der Stand der Dinge, gibt es noch Einreichungen? Zu @Kapitn Blick.

Alles wartet. ;)
 
  • Thread Starter Thread Starter
  • #86


Ist wahrscheinlich gar nicht aufgefallen, aber ich war ein paar Wochen im Board inaktiv. Ich bin diesmal wirklich kein Vorbild, aber ich reiche noch etwas nach. Bis Ende der Woche, hoffe ich.

:o
 
Ist aufgefallen. Mir zumindest. Aber schön das du wieder zurück bist.... und willkommen zurück im Club, hoffentlich auch bald mit eigener Abgabe ;)
 
  • Thread Starter Thread Starter
  • #89
In der Zeit, in der ich mich mit den benötigten Bildern beschäftigt habe, könnten man mehrere Projekte programmieren.
Ich weiß nicht, ob es an Gimp liegt, meinem Unvermögen oder an Geheimnissssen beim bmp-Format.

Ich habe noch nicht rausgefunden, wie ich zuverlässig ein Bild mit transparentem Hintergrund exportiere.
Beim letzten Bild habe ich nach dem Freistellen, das Objekt kopiert, in eine neue Ebene eingefügt, die alte Ebene gelöscht und dann das Bild exportiert.(als bmp)
Beim Laden in eine Windosform ist der Hintergrund wieder da. :unknown:

Wo kommt der her?

Wenn ich jetzt vor dem Export noch eine 2. Ebene, ganz mit schwarz gefüllt, hinter der Ebene mit meinem Objekt erstelle, dann hat mein Bild in der Anwendung keinen schwarzen Hintergrund, sondern die gewünschte Transparenz.

Gibt es jemanden, der mir bitte sagen kann, daß das ganz logisch ist und so sein muß und mir dann erklären kann warum?
Alleine komme ich nicht darauf.
 
Du weißt schon, das BMP keinen Alphakanal unterstützt bzw. transparente Pixel? Das was du suchst ist PNG. Daher, wenn du die transparenten Bereiche, unter BMP speicherst, werden diese weiß/schwarz oder wie auch immer interpretiert, so dass diese nicht transparent sind, würde ich meinen. Öffne einfach mal das exportiere BMP in GIMP, wie sieht der Hintergrund (transparente) aus, also welche Farbe?

Wenn du dann Schwarz als Hintergrund wählst, kann es sein, dass die Windowsform das Schwarz maskiert, daher ist es dann transparent - würde ich von ausgehen.
 
  • Thread Starter Thread Starter
  • #91


Du meinst bmp hat keinen Alphakanal? Aber Transparenz kennt das Format schon.
Es funktioniert ja letztlich bei mir und C# hat bei bitmap die Funktion MakeTransparent.
Außerdem sagt
"Raster file formats that support transparency include GIF, PNG, BMP, TIFF, and JPEG 2000, through either a transparent color or an alpha channel. "
 
Okay, mit Einschränkungen:
Bitmaps (i.e. files with .BMP extension) do not natively support transparency: you need to save as a different format like PNG. Another format that supports transparency is GIF but it is only suitable for simple images with few colours. The best format depends on the image and where it will be used.

*****

Update

Since this answer was originally written (some 8 years ago) it has been pointed out that the BMP format can support transparency in some cases. Still I would not recommend using it for this purpose, many programs will not interpret the alpha channel correctly and there would be no real reason for using it over something like PNG.

Quelle:

Okay, dann bin ich nicht auf dem neuesten Stand.

Wie dem auch ist, ich glaube das Schwarz in dem Bild wird maskiert, daher steht es frei. Wenn du als BMP exportierst, hat es aber vermutlich keinen(?) Alphakanal - daher, das schwarz wird von deiner MakeTransparent Funktion beschnitten bzw. maskiert. Wenn du dann Gimp entscheiden lässt, vielleicht ist es dann ein "Grau" oder "irgendwas" (das was sonst schwarz wäre mit Hintergrund) - oder dein Programm unterstützt, wenn Gimp mit Alpha exportiert, keine BMPs mit Alpha? Irgendwas dazwischen.
 
Zuletzt bearbeitet:
  • Thread Starter Thread Starter
  • #93
Ich weiß es einfach nicht. Bei den anderen Bildern ging es ohne schwarz. Manchmal direkt, manchmal erst durch ausschneiden und einfügen in eine neue Ebene. Das hat bei letzten Bild aber nicht recht funktioniert. Die schwarze Ebene hatte ich nur erstellt um zu testen, ob vielleicht die Datei nicht überschrieben wird und ich immer auf das erste Ergebnis schaue. Ich hatte also eigentlich eine schwarzen Hintergrund erwartet und genaugenommen nicht das bekommen, was ich erzeugen wollte, sondern "zufällig" meinen letztendlichen Wunsch.

Das Problem scheint mir auch letztendlich nicht zu sein, daß das mit der Transparenz nicht funktioniert, sondern daß da Informationen gespeichert zu sein scheinen, die ich da nicht erwarte. Also der Bildhintergrund, der keine einzelne Farbe ist, sondern der ursprüngliche aus dem Foto.

Aber ich stelle das jetzt mal zurück, ich muß ja irgend wann auch mal mit dem Programm anfangen. ;)

Ich werde da aber gerne darauf zurückkommen.
 
Ich hab das mal getestet, Gimp unterstützt auch für BMPs Alphakanäle.

Der Standard ist aber, ohne Alpha, das der Hintergrund (die die transparenten Bereiche) weiß dargestellt und abgespeichert werden.

Es gibt aber erweiterte Exportoptionen in Gimp:


32 Bit unterstützt einen Alphakanal, habs auch entsprechend gespeichert und geöffnet, war transparent.

Standard für BMP wäre aber 24 Bit, also RGB in 0-255er Blöcken. Die 16 Bit Optionen habe ich jetzt nicht getestet.
 
  • Thread Starter Thread Starter
  • #95
32 Bit ist bei mir auch eingestellt. Es sieht ja auch als Bild unter Windows ok aus, erst in der Anwendung kommt der Hintergrund wieder.

Wenn ich das Bild hier bei picflash hochladen will, kommt eine Fehlermeldung, lade ich es hier bei ngb hoch, hat es einen schwarzen Hintergrund.

Schwarzer Hintergrund wäre alleine ein Problem mit Transparenz, aber wo kommt der Originale Hintergrund in der Anwendung her?
 
Ich glaube das Problem liegt hier:


The system palette defines one color as the default transparent, or alpha, color. This method makes the default transparent color transparent for this Bitmap. If no transparent color is specified by the system, LightGray is the transparent color.

When you call MakeTransparent, the bitmap will be converted to the Format32bppArgb format, as this format supports an alpha channel.

Also, (ist verlinkt in dem Link) - ist die Standardmaske der "make_transparent" Funktion. Hier würde es dann vermutlich ausreichen eine Farbe anzugeben, 100% Grün, 100% Blau, Schwarz oder Weiß. - Je nach Motiv.
 
Zuletzt bearbeitet:
Normales "Jpeg/Jpg" hat keine Transparenz, JPEG2000 ist um die 2000er Wende entstanden, daher auch der Name. Wurde aber soweit ich das beurteilen kann, wenig bis gar nicht genutzt. Ich bin mir auch gerade nicht sicher ob irgendein Browser dieses Format überhaupt aktiv "zur Darstellung im WWW" unterstützt.

Hier nach aber nein:

Mal ein Artikel dazu:
 
Kapitn, wie ist der Stand der Dinge mit deinem Projekt - und sag bitte bitte nicht du hast aufgehört daran zu programmieren... :o
 
Nein. Ich geben nicht auf. ;)
 
Zurück
Oben