AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

BRCC32 und PNG-Icons

Ein Thema von Codehunter · begonnen am 24. Jan 2018 · letzter Beitrag vom 26. Jan 2018
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#1

BRCC32 und PNG-Icons

  Alt 24. Jan 2018, 08:46
Hallo!

Ich bin gerade auf ein altes Problem gestoßen, das mir Rätsel aufgibt. Ich habe mir ein Icon erstellt (.ico) in dem Grafik im PNG-Format enthalten ist. Wenn ich das in der Delphi-IDE über die Projektoptionen als Programmsymbol angebe, wird es problemlos akzeptiert. Wenn ich das selbe Icon dagegen in einer .rc-Datei angebe und diese .rc versuche mit BRCC32 zu kompilieren, dann bekomme ich:
Code:
Error icon.rc 1 15: Allocate failed
In der .rc steht folgendes drin:
Code:
MAINICON ICON "mainicon.ico"
Schaue ich aber in die Projektoptionen, dann wird dort genauso BRCC32 als Resourcencompiler verwendet. Also was macht die Delphi-IDE in dem Fall anders?

Im Netz findet man zu dem Problem eigentlich ausschließlich Workarounds in der Form, dass man einen anderen Resourcen-Compiler verwenden soll. Aber da es ja offensichtlich mit Delphi-Bordmitteln doch auch geht, würde ich gerne wissen wie - ohne externe Tools.

Grüße
Cody
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Fukiszo
(Gast)

n/a Beiträge
 
#2

AW: BRCC32 und PNG-Icons

  Alt 24. Jan 2018, 09:44
Soweit ich weiß kann man der IDE einen anderen linker zuweisen, also einem externen, das ist das bordmittel.

Lieg ich falsch dann sorry!

Grüße
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.057 Beiträge
 
Delphi 2009 Professional
 
#3

AW: BRCC32 und PNG-Icons

  Alt 24. Jan 2018, 09:49
Die IDE erstellt die .RES-Datei selber, zumindest war das früher so.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.462 Beiträge
 
Delphi 12 Athens
 
#4

AW: BRCC32 und PNG-Icons

  Alt 24. Jan 2018, 09:58
Ich habe mir ein Icon erstellt (.ico) in dem Grafik im PNG-Format enthalten ist.
Kannst du die ICO-Datei mal hier anhängen?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Fukiszo
(Gast)

n/a Beiträge
 
#5

AW: BRCC32 und PNG-Icons

  Alt 24. Jan 2018, 10:04
der fehler liegt bestimmt am compressed png, unkomprimiert müsste es klappen.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: BRCC32 und PNG-Icons

  Alt 24. Jan 2018, 11:07
Ich konnte den Fehler inzwischen etwas eingrenzen. BRCC32 scheint nicht mit dem PNG-Format mit Alphatransparenzen Probleme zu haben wie ich zuerst dachte, sondern mit dem seit Windows Vista gebräuchlichen Format von 256x256 Pixeln. Wenn ich diesen Riesenklotz aus dem Icon lösche, dann kompiliert BRCC32 problemlos auch Alpha-PNGs zur RES. Das erklärt allerdings immer noch nicht, wie die IDE die entsprechende RES-Datei zusammenbauen kann selbst wenn das 256x256-Bild in der ICO enthalten ist.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.057 Beiträge
 
Delphi 2009 Professional
 
#7

AW: BRCC32 und PNG-Icons

  Alt 24. Jan 2018, 11:13
BRCC weiß überhaupt nicht, was eine PNG-Datei ist und speichert sie deshalb wie jede andere unbekannte Datei (RT_RCDATA) ab, was völlig selbstverständlich problemlos klappt. Bitmap, Icon/Cursor sowie RIFF-ANI sind die einzigen Grafikformate, die für die RES ein anderes als das originale Format vorsehen, weshalb sich der Compiler nicht inhaltlich um Sachen wie PNG kümmern muss.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: BRCC32 und PNG-Icons

  Alt 24. Jan 2018, 11:59
BRCC weiß überhaupt nicht, was eine PNG-Datei ist und speichert sie deshalb wie jede andere unbekannte Datei (RT_RCDATA) ab, was völlig selbstverständlich problemlos klappt. Bitmap, Icon/Cursor sowie RIFF-ANI sind die einzigen Grafikformate, die für die RES ein anderes als das originale Format vorsehen, weshalb sich der Compiler nicht inhaltlich um Sachen wie PNG kümmern muss.
Tja wär ja schön wenns so wäre. Ist es aber nicht. Probiert es selbst aus. Ich habe die betreffenden Dateien als ZIP angehängt. Die beiden Varianten unterscheiden sich nur dadurch, dass in mainicon.ico eine zusätzliche Version mit 256x256 Auflösung enthalten ist und in mainicon2.ico nicht. Einfach die rescompile.bat in der Befehlszeile aufrufen. (brcc32.exe muss im Suchpfad sein!)

PS: Ja, es ist das Icon von HeidiSQL Das ist das Projekt an dem ich grade dran bin.
Angehängte Dateien
Dateityp: zip icontest.zip (59,9 KB, 11x aufgerufen)
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.462 Beiträge
 
Delphi 12 Athens
 
#9

AW: BRCC32 und PNG-Icons

  Alt 24. Jan 2018, 13:19
Soweit ich weiß, verwendet die IDE die cgrc.exe - auch wenn der Eintrag in den Projektoptionen etwas anderes vorgaukelt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.057 Beiträge
 
Delphi 2009 Professional
 
#10

AW: BRCC32 und PNG-Icons

  Alt 24. Jan 2018, 13:32
BRCC weiß überhaupt nicht, was eine PNG-Datei ist und speichert sie deshalb wie jede andere unbekannte Datei (RT_RCDATA) ab, was völlig selbstverständlich problemlos klappt. Bitmap, Icon/Cursor sowie RIFF-ANI sind die einzigen Grafikformate, die für die RES ein anderes als das originale Format vorsehen, weshalb sich der Compiler nicht inhaltlich um Sachen wie PNG kümmern muss.
Tja wär ja schön wenns so wäre. Ist es aber nicht. Probiert es selbst aus. Ich habe die betreffenden Dateien als ZIP angehängt. Die beiden Varianten unterscheiden sich nur dadurch, dass in mainicon.ico eine zusätzliche Version mit 256x256 Auflösung enthalten ist und in mainicon2.ico nicht.
Dein Projekt enthält keine PNG-Datei. Eine PNG in einer Icondatei ist immer noch eine Icondatei, die vom Ressourcenkompiler in diverse Bilddateien (Bitmaps und eben eine PNG) zerlegt wird, die jeweils als RT_ICON (auch: Icon Entry) eingebunden werden. Auch generiert er ein RT_GROUP_ICON mit Verweisen auf diese. Die Einbindung einer PNG-Datei als RT_ICON, das wie erwähnt anders RT_RCDATA oder ein (technisch identischer) benutzerdefinierter String-Typ eigentlich eine Veränderung der Ressource benötigt, ist dem BRCC für PNG unbekannt (korrekt wäre: keine Veränderung, anders als Bitmap-Icon-Entries, die verändert werden müssen), das Ding ist schließlich seit 19 Jahren nicht mehr angefasst worden.
Janni
2005 PE, 2009 PA, XE2 PA

Geändert von Redeemer (24. Jan 2018 um 13:36 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz