Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ubuntu tietokoneissa => Aiheen aloitti: Illu - 29.10.19 - klo:21.04
-
Pitäisi saada iso pdf-tiedosto muutettua kuvaksi ja yritysten kokeiluvaiheessa on Imagemagick. Käytössä on U18.04. Imagemagick asentuu Synapticilla ja päätteessäkin asentaessa herjaa olevan jo uusin versio.
Sovellusvalikko ei sitä kuitenkaan tunne, eikä päätekään. Eikä siten käynnistykään.
Missä se piileksii?
Muunnettava on siis iso pdf-tiedosto, koneesta loppuu aika pikaisesti paukut ja muistikin (jota 8G) tarvitsee swapin avukseen. Gimpissä olisi muutospalikat, mutta tarpeeksi isolla tarkkuudella avatessa lähdettä se herjaa, eikä avaa pdf:ää. Pienemmällä tarkkuudella ei vienti jpg:ksi anna tarpeeksi tarkkaa kuvaa.
-
Imagemagick asentuu Synapticilla ja päätteessäkin asentaessa herjaa olevan jo uusin versio.
ImageMagick on komentorivipohjainen ohjelmakokonaisuus. Se sisältää useita ohjelmia kuvien manipulointiin.
Lue lisää man-sivulta komennolla man imagemagick
OVERVIEW
Use ImageMagick® to create, edit, compose, or convert bitmap images. It can read and write
images in a variety of formats (over 200) including PNG, JPEG, GIF, HEIC, TIFF, DPX, EXR,
WebP, Postscript, PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort,
shear and transform images, adjust image colors, apply various special effects, or draw
text, lines, polygons, ellipses and B\['e]zier curves.
-
ilkka@kotikone:~$ man imagemagick
Manuaalisivua imagemagick ei ole
-
ilkka@kotikone:~$ man imagemagick Manuaalisivua imagemagick ei ole
???? Kyllä minulla on komento, joka toimii, ja osaa ohjeistaa ImageMagick++ käyttöä :) Käytettävissä olisi myös GraphickMagic.
Yllättävää, jos syystä tai toisesta järjestelmään ei olisi asenneltu manuaalisivuja. Toki nuo kuluttavat levytilaa.
Myös info-sivut on käytettävissä: info imagemagick
-
No käyttöohje on joka tapauksessa luettavissa netissä yksityiskohtaisempana versiona: https://legacy.imagemagick.org/script/command-line-tools.php
Muunnoksiin sopii hyvin convert-ohjelma, ja tällaista voisi kokeilla aluksi:
convert -density 300 input.pdf -resize 4096 output.png
Komennossa -density 300 määrittää, kuinka tarkalla resoluutiolla PDF piirretään DPI:nä. Sitten -resize 4096 skaalaa sen pikselikokoon 4096 x Y (missä Y määrittyy automaattisesti), ja lopuksi kuva tallennetaan PNG-muodossa.
Jos tuntuu liian hitaalta tai muisti loppuu edelleen kesken, kokeile pienempää density-arvoa.
-
Ongelma ei ole ohjelman ohje, vaan se, ettei asennuksen jälkeen sitä ole.
ilkka@kotikone:~/Lataukset$ convert -density 300 verkko.pdf -resize 4096 output.png
convert-im6.q16: not authorized `verkko.pdf' @ error/constitute.c/ReadImage/412.
convert-im6.q16: no images defined `output.png' @ error/convert.c/ConvertImageCommand/3258.
Tuossa siis lähteen nimenä "verkko.pdf". Koko 6,2 Mt ja paperille tulostettuna 5000x5000, milliä...
-
Ongelma ei ole ohjelman ohje, vaan se, ettei asennuksen jälkeen sitä ole.
juylin ehdottamaa imagemagick-manuaalisivua ei taida olla Ubuntu 18.04:n ja vanhempien paketoinnissa. Sen sijaan yksittäisten Imagemagick-ohjelmien manuaalisivut ovat kyllä luettavissa.
man convert
ilkka@kotikone:~/Lataukset$ convert -density 300 verkko.pdf -resize 4096 output.png
convert-im6.q16: not authorized `verkko.pdf' @ error/constitute.c/ReadImage/412.
convert-im6.q16: no images defined `output.png' @ error/convert.c/ConvertImageCommand/3258.
Tuossa siis lähteen nimenä "verkko.pdf". Koko 6,2 Mt ja paperille tulostettuna 5000x5000, milliä...
Näemmä Ubuntun ImageMagick-paketoinnissa on nykyisin estetty PDF-muunnokset vakiona. Tällä vältetään joukko tietoturvaongelmia nettipalvelimissa, joissa ImageMagickia usein hyödynnetään enemmän tai vähemmän epämääräisistä lähteistä tulevien kuvien prosessointiin.
Voit joko muokata /etc/ImageMagick-6/policy.xml -tiedostoa tähän tapaan:
sudo nano /etc/ImageMagick-6/policy.xml
Muokkaa rights-attribuuttia rivillä:
<policy domain="coder" rights="none" pattern="PDF" />
->
<policy domain="coder" rights="read|write" pattern="PDF" />
Tai vaihtoehtoisesti tiedoston voi siirtää kokonaan syrjään:
sudo mv /etc/ImageMagick-6/policy.xml /etc/ImageMagick-6/policy.xml.disabled
Ubuntun virallinen ImageMagick-paketointi on saatavilla vain Quantum Depth 16 -versiona, jolloin muunnoksissa käytetään 16-bittisiä värejä. Isojen kuvien prosessoinnissa saattaisi olla apua Q8-versiosta, jolloin muistia tarvitaan puolet vähemmän. Sellainen pitäisi kuitenkin kääntää itse lähdekoodista...
-
Rights-attribuutin muutos ei auttanut, mutta tiedoston siirto ainakin sai prossun hyrisemään. Saas nähdä, kuinka kauan kestää. Nyt töihin ja kone saa jäädä kotihommiin.
-
Rights-attribuutin muutos ei auttanut, mutta tiedoston siirto ainakin sai prossun hyrisemään. Saas nähdä, kuinka kauan kestää. Nyt töihin ja kone saa jäädä kotihommiin.
Attribuutin muunnoksessa oli pikku munaus. Oikein tehtynä tulos oli
ilkka@kotikone:~/Lataukset$ convert -density 300 verkko.pdf -resize 4096 output.png
convert: ../../magick/quantum.c:216: DestroyQuantumInfo: Väite ”quantum_info != (QuantumInfo *) NULL” ei pidä paikkaansa.
Keskeytetty (luotiin core-tiedosto)
Sivuun siirtämisen tulos
ilkka@kotikone:~/Lataukset$ convert -density 300 verkko.pdf -resize 4096 output.png
convert-im6.q16: unable to write pixel cache `/tmp/magick-2680L-BePc5At9Ul': Laitteella ei ole tilaa jäljellä @ error/cache.c/WritePixelCachePixels/5911.
convert-im6.q16: IDAT: Too much image data `/tmp/magick-2680UIyyegLNY8b21' @ warning/png.c/MagickPNGWarningHandler/1654.
Tmp-kansioon ilmestyy n. 130 MT:n tiedosto, tmp on juuressa, jossa on vapaata tilaa yli 10 gigaa, koneessa on muistia 8 ja swappia 20 gigaa, pitäisi noiden nyt riittää.
Tuloksena on puolikas alkuperäisestä pdf-kuvasta ja noilla asetuksilla toki liian epätarkka. Taitaa pitää hakea joku muu ratkaisu.
-
Tmp-kansioon ilmestyy n. 130 MT:n tiedosto, tmp on juuressa, jossa on vapaata tilaa yli 10 gigaa, koneessa on muistia 8 ja swappia 20 gigaa, pitäisi noiden nyt riittää.
ImageMagickissa on vakiona rajoitukset muistin ja levyn käytölle:
convert -list resource
Resource limits:
Width: 16KP
Height: 16KP
Area: 128MP
Memory: 256MiB
Map: 512MiB
Disk: 1GiB
File: 768
Thread: 4
Throttle: 0
Time: unlimited
Kokeile kasvattaa rajoja vivuilla: -limit memory 6GiB -limit map 6GiB -limit disk 6GiB
convert -limit memory 6GiB -limit map 6GiB -limit disk 6GiB -density 300 verkko.pdf -resize 16000 output.png
Jos ei toimi, nuo pitää muuttaa samassa /etc/ImageMagick-6/policy.xml -tiedostossa, jossa PDF:n luku ja kirjoitus sallittiin.
-
Ei toiminut suoraan komentorivillä
ilkka@kotikone:~/Lataukset$ convert -limit memory 6GiB -limit map 6GiB -limit disk 6GiB -density 300 verkko.pdf -resize 16000 output.png
convert-im6.q16: DistributedPixelCache 'shared secret expected' @ error/distribute-cache.c/ConnectPixelCacheServer/210.
convert-im6.q16: cache resources exhausted `/tmp/magick-2651lNMVQry1kNMb1' @ error/cache.c/OpenPixelCache/3984.
convert-im6.q16: no images defined `output.png' @ error/convert.c/ConvertImageCommand/3258.
Muutokset tiedostoon ei myös antanut toivottua tulosta.
ilkka@kotikone:~/Lataukset$ convert -density 300 verkko.pdf -resize 16000 output.png
convert: ../../magick/quantum.c:216: DestroyQuantumInfo: Väite ”quantum_info != (QuantumInfo *) NULL” ei pidä paikkaansa.
Keskeytetty (luotiin core-tiedosto)
-
Ehkäpä ImageMagickin ja Ghostscriptin välllä on jotain ongelmaa, kun kuva on suuri. Kokeile suoraan Ghostscriptillä:
gs -sDEVICE=png16m -o output.png -r300 verkko.pdf
Tai läpinäkyvällä taustalla:
gs -sDEVICE=pngalpha -o output.png -r300 verkko.pdf
Kannattaa seurata gs-prosessin muistinkäyttöä. Jos se lähestyy 7 gigaa, kun keskusmuistia on 8 gigaa, järjestelmä alkaa todennäköisesti swappaamaan ja muunnos kestää ikuisuuden. Silloin ei ehkä auta kuin muuntaa osissa tai pienemmällä resoluutiolla.
-
Muunnostarve on pdf -> kuvaksi, joten kai näin päin
gs -sDEVICE=png16m -o verkko.pdf -r300 output.png
Mulla harvoin muistinkäyttö ylittää 4 gigaa, silti swappia on useinkin eri asioita hommaillessa hieman, muutama mega.
Edit. Ei siis ajattelemallani tavalla, vaan annetulla :-[
Edit2 Oikea komento antoi varsin nopeasti tuloksen. Tässä on nyt jotain muutakin hämärää. Tuotos on kooltaan 38,4 Mt ja jo sen ominaisuuksien katsominen tiedostoselaimella saa koneen kyykkyyn. Muistin käyttö pomppaa 1,5 GiB -> 7,5 GiB (100%) ja swappia päälle vielä 3 GiB. Avaamiseen ei taitaisi päivä riittää...
-
Edit2 Oikea komento antoi varsin nopeasti tuloksen. Tässä on nyt jotain muutakin hämärää. Tuotos on kooltaan 38,4 Mt ja jo sen ominaisuuksien katsominen tiedostoselaimella saa koneen kyykkyyn. Muistin käyttö pomppaa 1,5 GiB -> 7,5 GiB (100%) ja swappia päälle vielä 3 GiB. Avaamiseen ei taitaisi päivä riittää...
Kuva vain on iso, kuten saattoi odottaa. Useimmat kuvankatselimet ja tiedostoselaimet eivät ole erityisen säästeliäitä muistinkäytön suhteen.
Kokeile feh-ohjelmalla:
feh output.png
Jos silläkään ei avaudu, joudut varmaankin jakamaan kuvan osiin katselua varten.
-
Kuvan koko on ilmeisesti liian iso, kun käytössä on Intelin integroitu näytönohjain. Windowsin puolella tuli heti ilmoitus, ettei paukut riitä, ei edes yrittänyt avata kuvaa. Mielenkiintoista vaan on tuo hirmuinen muistinkäyttö.
Millähän tuota kuvaa jakaisi, kun sitä ei voi ohjelmaan avata ja cropata sillä?
-
Imagemagickilla, tai tallentamalla gs:llä vain osan kuvasta.
Näytönohjain tai sen muistimäärä ei sinänsä vaikuta asiaan useimmilla katseluohjelmilla.
-
Kun se Imagemagick ei käynnisty millään...
Kuvan jakaminen onnistui "vips"illä.
ilkka@kotikone:~/Lataukset$ vips dzsave output.jpg x --depth one --tile-size 7000 --overlap 0 --suffix .jpg
Tässä on nyt koko ajan ongelmana alkuperäisen pdf -tiedoston koko ja se, että se on kerroksina (tai mikä nimitys nyt onkin oikea). Pitää hommata toisella tapaa tehty versio lähteeksi.
Kokonaisuus alkaa hahmottumaan, ketju rönsysi kovasti aiheesta.
Kiitos nm avusta.