1

Téma: NÁMĚT export do PNG

Už to tu kdysi proběhlo, ale pro jistotu připomínám přímý export do obrázkového formátu PNG a to jak v Layoutu, tak v Schematicu.

2

Re: NÁMĚT export do PNG

Možné řešení by asi záviselo na tom, co (všechno) byste od PNG souborů očekával a k jakým účelům je chtěl užívat.  Relativně přímočaré implementace bych přitom viděl zhruba tyto tři:

1) Výstup podobný jako pro systémovou tiskárnu, jen by se navíc zadalo rozlišení souboru (a jeho jméno).

2) Výstupní generátor podobný tomu pro formát TIFF.  (Komplikace je v tom, že bitmapový generátor od aplikace nedostává standardní windowsovskou bitmapu, nýbrž jakýsi náš vlastní formát — vývoj Formiky totiž začal v době, kdy ještě neexistovaly Windows 3.1.)

3) Jakýsi ad hoc výstup, který vygeneruje bitmapu stejným způsobem jako pro obrazovku, jen její rozměry vypočte např. z aktuálního zoomu a skutečných rozměrů desky, a zapíše ji jako PNG soubor.  Zde je malá ukázka, jen bez těch výpočtů:

http://www.formica.cz/files/forum/Triton.png

(Do testovací verze jsem si před chvilkou pokusně připsal pár řádek, které bitmapu vygenerovanou příkazem Zoom / Zoom All zároveň uloží do souboru.)  Zde by se také dalo s výhodou užít (relativně) nových příkazů Graphics / Save View & Zoom a Restore Zoom, jimiž by se nastavení vhodné pro PNG soubory dalo ukládat do konfigurace progamu.

3

Re: NÁMĚT export do PNG

Dobrý den,
vzhledem k tomu, že mi jde o přikládání obrázků do našich dokumentací (zejména Word), tak ideální by byla varianta č. 1, tj výstup jako na systémovou tiskárnu, jen do souboru.
IvoL

Re: NÁMĚT export do PNG

Teď jsem to zrovna řešil, bohužel je okolo toho trochu víc klikání. Formica dělá výstup do pdf, což je sice hezké že tam jdou zapínat jednotlivé vrstvy, ale vždycky jsem byl zvyklý na obrázek v gif nebo v png. Dostat z pdf obrázek, tedy sloučit vše do jedné vrstvy a vyexportovat nejspíš (možná) jde, ale pokud si k Adobe readeru budete platit licenci, aby se choval jako editor. Jak jsem zjistil že je to za peníze, dál jsem se o tuto cestu nezajímal. Udělat print screen z toho adobe sice jde taky, ale rozlišení obrázku odpovídá rozlišení obrazovky, pro tisk dokumentace nic moc.

Mnoho let jsem používal dosovský systém Formica 4.2 a tam byla možnost vygenerovat černobílý PCX pro každou vrstvu zvl᚝. To je v nové Formice zachováno také. Na změnu barev a sloučení vrstev jsem používal Paint Shop Pro 5. Pod 32 bit Windows 7 mi ještě chodí, pod Windows 10 už nainstalovat nejde. Tento velmi starý a poměrně jednoduchý editor obrázků má všechno potřebné. Nevadí mu různé neznámé přípony souborů (ty jsem měl nastavené podle vrstev), bez ptani si zjistí že obrázek je ve skutečnosti pcx a otevře ho, každou vrstvu v novém okně. Pak si pamatuje uživatelsky nastavenou paletu barev a pro každou vrstvu jen překlikám barvy. Potom má funkci Aritmetic a tou jednotlivé vrstvy sloučím. Mám tam už trvale zaškrtnuto slučování přes Darkest. Dá se nastavit i Divisor (mám 1) a Bias (mám 0).
U výsledného obrázku je dobré snížit počet barev na 256, aby šel uložit i jako gif. Myslím si (nevím určitě) že třeba Open Office při exportu výsledného dokumentu do PDF pozná že se nejedná o fotku a komprimuje obrázek tak, že hrany zůstanou ostré a bez artefaktů.

Ale doba pokročila a i když Formica přímo neumí barevný png, myslím že by se podobným postupem dal obrázek vytvořit v Gimpu. Gimp používám jen na úpravy fotek, jiné věci s ním neumím. Ale pracuje i s více vrstvami, má možnost hromadných operací se soubory a dají se v něm programovat makra. Formica dokáže vygenerovat jednotlivé vrstvy tak, že všechny budou mít správnou příponu pcx a budou se lišit v názvu. Myslím že toho by se dalo využít a proces tvorby obrázku zautomatizovat. Třeba by se toho ujmul někdo, kdo s Gimpem umí?

5

Re: NÁMĚT export do PNG

Dobrý den,
GIMP zrovna nepoužívám, ale na různé konverze obrázků z příkaz. řádku je super utililita Image Magick https://imagemagick.org/index.php. Tu si můžete stáhnout a rozbali/nainstalovat.
Ve Formice použijte export do tifu černou barvou a do názvu generované vrstvy přidejte -N.tif, kde N je pořadové číslo vrstvy 0 až 23, tj. pro test.pcb vznikne test-0.tif, test-1.tif ... test-23.tif.
Vytvořil jsem cmd soubor, který převede všechny tify do png, přehodí barvy dle tabulky a sloučí vrstvy do dvou (strana a,b) png souborů.
Barvy se definují na začátku souboru (musí začínat slovem rem, aby se nevykonávaly).
Tento kód si zkopírujte, uložet do cmd souboru, nastavte cestu k imagemagick instalaci a nastavte si barvy dle libosti.

@echo off
:: skript vyuziva free program https://www.imagemagick.org/script/download.php
:: testovan s verzi ImageMagick 7.0.8-14 Q16 x86
:: definice stran a barev vrstev - barvy viz https://imagemagick.org/script/color.php
:: rem vrstva strana barva
rem 0 a BLACK
rem 1 a BLUE
rem 2 a ORANGE
rem 3 a GRAY
rem 4 a "#102030"
rem 5 a MAGENTA
rem 6 a GOLD
rem 7 a khaki
rem 8 a "#909090"
rem 9 a "#f0f0f0"
rem 10 a "#101010"
rem 11 a "#101010"
rem 12 b "#101010"
rem 13 b "#101010"
rem 14 b "#f0f0f0"
rem 15 b "#909090"
rem 16 b khaki
rem 17 b GOLD
rem 18 b MAGENTA
rem 19 b "#102030"
rem 20 b GRAY
rem 21 b ORANGE
rem 22 b BLUE
rem 23 b BLACK

:: cesta k ImageMagick instalaci
set cnv="c:\utils\imagemagick\convert.exe"

:: spojeni vrstev pomoci metody xor, rms, mean atd, viz convert.exe -list evaluate
set eval=xor

:: zacatek jmena souboru
set name=%1
if #%1# == ## (
  echo Name of .tif files is not defined ...
  set name=test
)

:: pomocne promenne, aby se neprevadelo a mazalo co nevzniklo  
set out_a=0
set out_b=0

:: prevod B/W tif souboru do 24b PNG
for /L %%I in (0,1,23) do (
  if exist %name%-%%I.tif (
    %cnv% %name%-%%I.tif -define png:color-type=2 %%I#.png
    echo Layer %%I to PNG
  )
)

:: prevod BLACK barvy na barvu dle vrstvy (tabulka na zacatku souboru)
for /f "eol=@ tokens=1,2,3,4" %%I in (%~f0) do (
  if %%I == rem (
    if exist %%J#.png (
      %cnv% %%J#.png -fill %%L -opaque BLACK -define png:color-type=2 %%J_%%K#.png
      if %%K == a set out_a=1
      if %%K == b set out_b=1
      echo Layer %%J to %%L
    )
  )
)

:: slouceni vrstev do dvou png dle strany a a b
if %out_a% == 1 (
  %cnv% "*_a#.png" -evaluate-sequence %eval% %name%_a.png
  echo Side A generated as %name%_a.png
)
if %out_b% == 1 (
  %cnv% "*_b#.png" -evaluate-sequence %eval% %name%_b.png
  echo Side B generated as %name%_b.png
)
:: vymaz vsech pomocnych png souboru
if %out_a% == 1 (del *#.png) else (if %out_b% == 1 del *#.png)

Po uložení spuštění jako např. png.cmd test skript proběhne (začátek názvu test) a vytvoří soubory test_a.png a test_b.png s vrstami, které našel.
Pokud Vám to pomůže, budu rád a zajímalo by mne Vaše nastavení barev jednotlivých vrstev - já jsem tam dal hodnoty od pasu.
MK

Re: NÁMĚT export do PNG

Teď jsem objevil elegantnějěí a jednodušší řešení. Gimp umí naimportovat PDF a můžete si nastavit, jestli jednotlivé vrstvy chcete převést na vrstvy, nebo na samostatné obrázky. Vrstvy pak vidíte všechny a máte barevný obrázek rozmístění součástek, který si vyexportujete třeba jako GIF, PNG, JPG... Při importu se dá nastavit i rozlišení (DPI). Předpokládám, že Formica to do PDF ukládá vektorově a tak rozlišení můžete mít nejspíš libovolné.

7

Re: NÁMĚT export do PNG

Vladimír Anděl napsal:

...  Gimp umí naimportovat PDF a můžete si nastavit, jestli jednotlivé vrstvy chcete převést na vrstvy, nebo na samostatné obrázky.

Dobrý tip, kde se nastavuje převádění na vrstvy, mě to importuje PDFko jako jednu vrstvu.

IvoL