lørdag, januar 23, 2021

Pngbest.bat

Daily Rush Debat Programmering Pngbest.bat

  • Dette indlæg indeholder 24 kommentarer, har 16 deltagere og blev senest opdateret af  Anonym for 6 år, 3 måneder siden.
  • Forfatter
    Emne
  • #0

    Sven_Bent
    Bruger
    25.996 indlæg
    Offline

    Jeg ville lige dele frugten at mit batch roderi

    Dette er en PNG optimiserings scripts der kore multithreaded og med valgbar styrke

    PNGbest Fil.png

    Styrken er optinalt og uden en vardi defaulter den til 15 for et stadie og 0 for et andet.

    et andet ret smukt punkt er at den skippe den mest langsomme part hvis den selv finder ud af det nok ikke vil hjaelpe

    Foelgende filer skal bruges til batchen

    PNGwolf (zopfli versionen)
    PNGout
    Huffmix
    Deflopt
    Defluff

    @echo OFF
    set strenght=%2
    if “%2″==”” set strenght=15
    set RandIt=0
    set /a RandIt=(%2/%NUMBER_OF_PROCESSORS%)
    set /a TotalIt=%RandIt%”*%NUMBER_OF_PROCESSORS%

    ECHO — SvenBent’s PNGbest is optimizing your PNG file
    ECHO CPU threads: %NUMBER_OF_PROCESSORS%
    ECHO Zopfli compression strenght: %strenght%
    ECHO Random initial tables : %TotalIt%
    if “%3″==”brutal” ECHO Extended brute force: Enabled (not supported)
    if “%3″==”mixing” ECHO Mixing only mode: Enabled
    if “%3″==”pal” ECHO Expanding palette size: Enabled (use for less than 8bits pallette images)
    ECHO File: %1
    ECHO Size: %~z1

    if “%3″==”mixing” Goto Mixing

    ECHO — PNGwolf-Zopfli —
    pngwolf –in=%1 –out=%1 –zopfli-iterations=%strenght%

    set wolfsize=%~z1

    ECHO — Finding optimal filter —
    for %%f in (6,0,1,2,3,4,5) do pngout %1 /f%%f /d0
    if “%3″==”pal” for %%f in (6,0,1,2,3,4,5) do pngout %1 /f%%f /d8

    ECHO — Block split threshold —
    for %%b in (64,96,128,192,384,512,768,1024,1536,2048,3072,4096,8192,16384,0) do pngout %1 /f6 /b%%b

    if “%~z1″==”%wolfsize%” goto norandom
    if “%2″==”” goto norandom

    :Mixing
    ECHO — Random initial tables and mixing blocks —

    echo @echo OFF >%1.pngmix.bat
    echo for /l %%%%r in (1,1,%RandIt%) do ( >>%1.pngmix.bat
    echo ECHO — Trial: %%%%r of %RandIt% — >>%1.pngmix.bat
    echo pngout %1.thread.%%1.png %1.tmp.%%1.png /r /force /f6 /kp >>%1.pngmix.bat
    echo Deflopt /b /s %1.tmp.%%1.png >>%1.pngmix.bat
    echo huffmix %1.thread.%%1.png %1.tmp.%%1.png %1.thread.%%1.png >>%1.pngmix.bat
    echo del %1.tmp.%%1.png >>%1.pngmix.bat
    echo ) >>%1.pngmix.bat
    echo del %1.%%1.tag >>%1.pngmix.bat
    echo exit >>%1.pngmix.bat

    for /l %%t in (1,1,%NUMBER_OF_PROCESSORS%) do (
    Copy %1 %1.thread.%%t.png
    echo tag > %1.%%t.tag
    start “Thread%%t” %1.PNGmix.bat %%t
    )

    ECHO Waiting for threads to close
    :keepwait
    timeout 1 >nul
    if exist %1.?.tag goto keepwait
    if exist %1.??.tag goto keepwait
    if exist %1.???.tag goto keepwait
    if exist %1.????.tag goto keepwait

    ECHO — Final mixing stage —
    for /l %%t in (1,1,%NUMBER_OF_PROCESSORS%) do (
    huffmix %1 %1.thread.%%t.png %1
    del %1.thread.%%t.png
    )
    del %1.pngmix.bat

    :norandom

    ECHO — Optimizing deflate structure —
    deflopt /b %1
    defluff < %1 >%1.fluff.png
    deflopt /b %1.fluff.png
    huffmix %1 %1.fluff.png %1
    deflopt /b %1
    del %1.fluff.png

    Sven Bent - Dr. Diagnostic
    www.TechCenter.DK

Viser 9 kommentarer - 16 til 24 (af 24 i alt)
  • Forfatter
    Kommentarer
  • #16

    Knuspar
    Bruger
    6.426 indlæg
    Offline

    #15 at optimere 263 MB data for at spare 3 kb er fandme hvertfald ikke fornuftigt

    Knuspar.dk - Steam Profil

    #17

    Hyldig
    Bruger
    2.655 indlæg
    Offline

    #16 det kommer vel anpå volumen… hedder du facebook eller google kan det nok godt betale sig…

    #18

    Munter
    Bruger
    2.473 indlæg
    Offline

    Jeg kan ikke se nogen steder hvor du tester hvorvidt der kan reduceres til en mindre farvepallette. Du kan køre et histogram på billedet for at afgøre om der kan skiftes til 8-bit, 8-bit med alpha kanal eller lignende fremfor 24-bit. Det kan give kæmpe besparelser.

    Det er nok den optimering vi har fået mest ud af i assetgraph projektet, som typisk tager 16 pixel ikoner ned i omegnen af 80-100 bytes imod de 3-5kb vi får fra designerne.

    "Everybody wants to laugh but nobody wants to cry, Everybody wants to go to heaven... but nobody wants to die!"--Larry Howard

    #19

    Sven_Bent
    Bruger
    25.996 indlæg
    Offline

    #18

    det sker faktisk under filter fasen

    /d0 fortaeller den skal bruge 0 bits palette/farve kanal. hvis dete ikek akn bruges bruger den minimums

    /d8 fortaller den skal bruge 8 bites
    Det i tit bedre end mindre bits da delta filtre er baseret paa bytes or ikke pixels

    /d8 bliver dog kun udfoert hvis du definer pal som 3. arguments

    dog mangel jeg en metode er sorte paletten da det kan give bonus mht til delta filtrering

    og nej den skifter ikke fra 24/32bits til palette
    jeg kan faa den til at Keore de test
    men den vil udfore det paa alle inout filer sa det oeger tiden for filer der ikke vil nyde godt af det. og det hjalper ikke paa de 3 testsets jeg tunede imod.

    men det er nok naeste ting jeg kigger paa

    #16 tror ikke du har læst korrekt. De 3 kb er forskellen mellem to metoder jeg testede.
    ikke mellem original og faardigt outputs

    mange png filer hugger min .bat 30-40% af orignal png fil størrelsen

    Sven Bent - Dr. Diagnostic
    www.TechCenter.DK

    #20

    Sven_Bent
    Bruger
    25.996 indlæg
    Offline

    #14
    Jeg gaetter paa du aldrig gamer eller kigger paa lol pics? for hvad er der der som er mere fornuftigt?

    Sven Bent - Dr. Diagnostic
    www.TechCenter.DK

    #21

    Sven_Bent
    Bruger
    25.996 indlæg
    Offline

    BAH
    der er en fejl i den nyeste bat fil
    den automatisk annulering a mixer delen hvis det anset ikke at kunne hjaelper virker ikke

    dvs batch files er langsommere end nodvendig paa nogle filer

    Sven Bent - Dr. Diagnostic
    www.TechCenter.DK

    #22

    Sven_Bent
    Bruger
    25.996 indlæg
    Offline

    Lige en update hvis folk er interreseret

    jeg har rette lidt i denne bat fil saa hvert th read bat der starter per cpu nu ikke stjaeler focus, samt der under multithread delen nu automatisk koere i belownormal prioritet.
    Begge goer det klart mere behagelig at multitaske med f.eks spil samtidigt.

    Sven Bent - Dr. Diagnostic
    www.TechCenter.DK

    #23

    fleXmac
    Bruger
    483 indlæg
    Offline

    Sven_Bent = The Batman

    #24

    Anonym 100 indlæg
    Offline

    Fantastisk arbejde, jeg har sendt dig en mail

Viser 9 kommentarer - 16 til 24 (af 24 i alt)
  • Du skal være logget ind for at kommentere på dette indlæg.