After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
Hiermee kun je niet gebruikte kleuren uit het palette halen.
Soms, als ik heel stil ben, kan ik de zon horen schijnen
Trouwens, misschien had ik er bij moeten zetten dat we de PNG's niet(!) mogen aanpassen
[ Voor 14% gewijzigd door Raven op 22-04-2010 07:41 ]
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
Als je het origele bestand niet mag aanpassen, dan schrijf je de PNGcrush output toch naar een tijdelijk bestandje...
Laat maar, volgensmij heeft dat niets te maken met wat jij zoekt
Sorry! begreep het niet helemaal goed
[ Voor 59% gewijzigd door Overlegne op 27-04-2010 16:04 ]
Dat zou dan nog een optie zijn, maar het zou het beste zijn als we op een of andere manier in een oogopslag konden zien welke nu daadwerkelijk gebruikt zijn, dat we dus niet eerst de pics moeten "opschonen" zeg maar om daarna 't pas te kunnen zien.Slogra schreef op dinsdag 27 april 2010 @ 16:00:
Ik denk dat DeTeraarist bedoeld dat PNGcrush alle niet-gebruikte kleuren verwijdert, en dan hou je een png met 2 kleuren (transparante kleur en de daadwerkelijk gebruikte kleur) over, wat je vervolgens kan analyseren met TweakPNG.
Als je het origele bestand niet mag aanpassen, dan schrijf je de PNGcrush output toch naar een tijdelijk bestandje...
Maker van TweakPNG heeft trouwens geantwoord. De pallet(kleurenindex)-viewer van TweakPNG kijkt alleen in de PLTE chunk, waar de kleurenindex in staat, maar kijkt/vergelijkt niet in/met de IDAT chunks waar de daadwerkelijk gebruikte kleuren in staan....
Uhm, ik zie niet zo 123 of dat programma kan wat ik graag wil, maar kan morgen tussen de certificeringen door wel even kijken of 't iets is.Overlegne schreef op dinsdag 27 april 2010 @ 16:03:
PicPick? Weet niet of dat wat voor je is?
Laat maar, volgensmij heeft dat niets te maken met wat jij zoekt
Sorry! begreep het niet helemaal goed
[ Voor 17% gewijzigd door Raven op 28-04-2010 18:27 ]
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
convert example.png -format %c histogram:info:-
Uitvoer is dan zoiets:
30: ( 0,102,204,255) #0066CC rgba(0,102,204,1)
2: ( 29,119,210,255) #1D77D2 rgba(29,119,210,1)
1: ( 45,129,214,255) #2D81D6 rgba(45,129,214,1)
1: ( 51,133,214,255) #3385D6 rgba(51,133,214,1)
10: (102,163,255,255) #66A3FF rgba(102,163,255,1)
3: (127,178,229,255) #7FB2E5 rgba(127,178,229,1)
5: (165,201,255,255) #A5C9FF rgba(165,201,255,1)
10: (204,224,255,255) #CCE0FF rgba(204,224,255,1)
5: (225,237,255,255) #E1EDFF rgba(225,237,255,1)
1: (230,240,255,255) #E6F0FF rgba(230,240,255,1)
9: (255,255,255,255) #FFFFFF white
3: (255,255,255, 0) #FFFFFF00 rgba(255,255,255,0)Daar kun je vrij duidelijk in zien hoeveel kleuren er gebruikt zijn en of ze de juiste RGBA waarden hebben, lijkt me? (De eerste kolom is dus het aantal pixels, daarna de gebruikte kleur in een aantal verschillende formaten om een of andere reden.)
[ Voor 6% gewijzigd door Soultaker op 28-04-2010 18:38 ]
We gaan 'm nog even wat verder uitproberen vandaag, thanks voor de tip iig
Na alvast even kort getest te hebben: De gebruikte kleuren geeft ie weer, maar heeft ImageMagick ook een optie om (naast de gebruikte kleuren) ook de gedefinieerde (semi)transparante kleuren weer te geven? Er mag namelijk maar 1 transparante kleur zijn (die geeft ie wel weer omdat die gebruikt word), maar heb net een PNG door dat programma laten bekijken waar er meerdere (niet gebruikte) transparanten inzitten, die worden niet weergegeven dus moeten we alsnog de kleurenpallet met TweakPNG doorneuzen....
edit: nu maar eens kijken hoe ik ook alweer een batch kan aanmaken die met variabelen werkt en een voor een de bestandsnamen van PNG's, die in 1 map staan, hier in zet "convert example.png -format %c histogram:info:-" daar "convert *.png -format %c histogram:info:-" niet werkt (*.png not found....)
edit2: Weet het al weer
1
2
3
4
5
6
7
| @ECHO OFF
for /F %%a in ('dir /b *.png') do (
set FileName=%%~na.png
"C:\Program Files\ImageMagick-6.6.1-Q16\convert.exe" %%a -format %c histogram:info:- > output.txt
)
pause |
Werkt alleen niet
7* (zelfde aantal als PNG's in map batchfile) deze error:
+ een lege output.txt....convert.exe: option requires an argument '-format' @ error/convert.c/ConvertImageCommand/1503.
edit3:
1
2
3
4
5
| @ECHO OFF
for /F %%a in ('dir /b *.png') do (
set FileName=%%~na.png
"C:\Program Files\ImageMagick-6.6.1-Q16\convert.exe" %%a -format %%c histogram:info:- > %%a.txt
) |
Nu maar even voor elk plaatje een aparte txt laten maken daar de output.txt telkens overschreven werd....
edit4: Nu staat alle output, incl filename, in 1 txt:
1
2
3
4
5
6
7
| @ECHO OFF
for /F %%a in ('dir /b *.png') do (
set FileName=%%~na.png
ECHO %%a
ECHO %%a >> output.txt
"C:\Program Files\ImageMagick-6.6.1-Q16\convert.exe" %%a -format %%c histogram:info:- >> output.txt
) |
Blijft over, de overige (semi)transparante kleuren die gevonden moeten worden (indien gedefinieerd in kleurenpallet).
[ Voor 56% gewijzigd door Raven op 29-04-2010 15:02 ]
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
Een batchfile die pngcheck.exe, convert.exe (van de door Soultaker aangeraden ImageMagick
sfk.exe is om de output van pngcheck.exe te doorzoeken en alleen dat wat we willen weten erbij pakt. Dit omdat pngcheck de volledige inhoud van de kleurenpallet en daaronder van alles een tweede lijst maakt incl transparantiewaarde. Dat resulteert (indien 256 kleuren gedefinieerd) in een zo lange output dat ik Swiss File Knife er maar bij heb gepakt om eruit te vissen wat ik (en mijn collega's) wil weten.
Het resultaat?:
1
2
3
4
5
6
7
8
9
10
11
12
| @ECHO OFF
for /F %%a in ('dir /b data\*.png') do (
set FileName=%%~na.png
ECHO %%a
ECHO %%a >> output.txt
pngcheck -p data\%%a >resultaat_pngcheck.txt
convert.exe data\%%a -format %%c histogram:info:- >> output.txt
sfk.exe grep resultaat_pngcheck.txt "0 = 0x00">> output.txt
ECHO. >> output.txt
ECHO. >> output.txt
)
del resultaat_pngcheck.txt |
Even 3 willekeurige png's geplaatst in mapje data:
resultaat_pngcheck.txt -> http://pastebin.com/45iAYb7i
output.txt -> http://pastebin.com/1CHEw1C9
De uiteindelijke output is dus:
1
2
3
4
| bestandsnaam gebruikte kleuren transparante kleuren |
Nu alleen nog uitvissen hoe ik het beste de semi-transparanten (kleuren met transparantie waarden van 1 tot 254) door de sfk krijg gevonden. Dat wordt een extra lading zoektermen toevoegen denk ik, maar dat is voor later. Dit is al heel wat voor nu
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
Txt-tje gemaakt met alle (semi)transparante waardes:
1
2
3
4
5
6
7
8
9
10
| 0 = 0x00 1 = 0x01 2 = 0x02 3 = 0x03 etc etc 251 = 0xFB 252 = 0xFC 253 = 0xFD 254 = 0xFE |
Daarna
1
| sfk.exe grep resultaat_pngcheck.txt "0 = 0x00">> output.txt |
1
2
3
| for /F "tokens=*" %%b in (hex.txt) do ( sfk156.exe grep resultaat_pngcheck.txt "%%b" >> output.txt ) |
Zo op het eerste gezicht werkt dat goed
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| @ECHO OFF
TITLE PNG Controle
type nul > output.txt
type nul > resultaat_pngcheck.txt
for /F %%a in ('dir /b data\*.png') do (
set FileName=%%~na.png
ECHO %%a
pngcheck -p data\%%a >resultaat_pngcheck.txt
sfk.exe grep resultaat_pngcheck.txt interlaced >> output.txt
sfk.exe replace -quiet -yes output.txt "/OK: data\//" > NUL
convert.exe data\%%a -format %%c histogram:info:- >> output.txt
for /F "tokens=*" %%b in (transparantie_waardes.txt) do (
sfk.exe grep resultaat_pngcheck.txt "%%b" >> output.txt
)
ECHO. >> output.txt
ECHO. >> output.txt
)
del resultaat_pngcheck.txt
start notepad output.txt
EXIT |
Alleen loopt ie vast op bestanden met spaties in de bestandsnaam...
Voor zover ik daarover iets kon terugvinden moet ik hier iets in veranderen:
1
| for /F %%a in ('dir /b data\*.png') do ( |
Maar wat
Heb al op verschillende plekken "-tjes eromheen proberen te zetten, maar dat helpt niet.
Of is het iets dat zo simpel is dat ik het niet zie
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
"delims=" in het (1e) For lusje zetten bleek de oplossing, daarnaast moesten er nog wel quootjes om de verschillende data\%%a's heen omdat de batch anders alsnog vastliep op spaties.
Dit lijkt trouwens een mooie final versie. Niet alleen de gebruikte kleuren en (semi)transparanten worden nu weergegeven, maar ook of een afbeelding (non-)interlaced is en ook de aanwezige chunks. M.a.w., alles wat we moeten controleren (en niets meer) wordt bij elkaar gegooid in een txt-tje
Zo ziet het er nu uit:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| @ECHO OFF
TITLE PNG Controle
type nul > output.txt
type nul > pngcheck1.txt
type nul > pngcheck2.txt
for /F "delims=" %%a in ('dir /b data\*.png') do (
set FileName=%%~na.png
ECHO %%a
ECHO %%a >> output.txt
pngcheck -v "data\%%a" > pngcheck1.txt
sfk.exe replace -quiet -yes pngcheck1.txt "/ //" > NUL
sfk.exe grep pngcheck1.txt offset > pngcheck2.txt
sfk.exe replace -quiet -yes pngcheck2.txt "/ chunk //" > NUL
sfk.exe grep pngcheck1.txt interlaced >> output.txt
ECHO. >> output.txt
sort < pngcheck2.txt >> output.txt
ECHO. >> output.txt
convert.exe "data\%%a" -format %%c histogram:info:- >> output.txt
pngcheck -p "data\%%a" > pngcheck1.txt
for /F "tokens=*" %%b in (hex.txt) do (
sfk.exe grep pngcheck1.txt "%%b" >> output.txt
)
ECHO. >> output.txt
ECHO ----------------------------------------------------------------- >> output.txt
ECHO. >> output.txt
)
start notepad output.txt |
Als dit goedgekeurd wordt (moet uiteraard getest worden op betrouwbaarheid
Alleen wil die convert.exe niet standalone werken, ImageMagick moet geïnstalleerd zijn anders werkt ie niet.
Hopelijk vind ik daar nog een oplossing voor.
Maar heb nu iig blije collega's
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
