[PHP] DPI berekenen van een EPS of PDF bestsand

Pagina: 1
Acties:

Onderwerpen


Verwijderd

Topicstarter
Na enkele uren zoeken op google,GoT en andere forums post ik mn vraag toch hier maar even.(echter zonder werkend resultaat..)

Hoe kan ik met php de DPI waarde van een EPS of PHP bestand opvragen.
Het gaat mij dus niet om de afbeelding/tekst wat er in het bestand zit, maar gewoon het bestand zelf.

Via imagemagick kan ik de onderstaande waardes van een EPS of PDF opvragen.

Maar hoe bereken ik met deze gegevens de DPI van het bestand?

code:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Image: Grolsch.pdf
  Format: PDF (Portable Document Format)
  Geometry: 612x792
  Class: DirectClass
  Type: TrueColor
  Endianess: Undefined
  Colorspace: RGB
  Channel depth:
    Red: 8-bits
    Green: 8-bits
    Blue: 8-bits
  Channel statistics:
    Red:
      Min: 0 (0)
      Max: 255 (1)
      Mean: 252.003 (0.988246)
      Standard deviation: 26.1872 (0.102695)
    Green:
      Min: 68 (0.266667)
      Max: 255 (1)
      Mean: 254.45 (0.997842)
      Standard deviation: 7.29125 (0.0285931)
    Blue:
      Min: 0 (0)
      Max: 255 (1)
      Mean: 250.158 (0.981012)
      Standard deviation: 34.472 (0.135184)
  Colors: 276
  Histogram:
  Rendering-intent: Undefined
  Resolution: 72x72
  Units: Undefined
  Filesize: 1.4mb
  Interlace: None
  Background Color: white
  Border Color: #DFDFDF
  Matte Color: grey74
  Page geometry: 612x792+0+0
  Dispose: Undefined
  Iterations: 0
  Compression: Undefined
  Orientation: Undefined
  Comment:  Image generated by GPL Ghostscript (device=pnmraw)

  Signature: 6aca30b64e2c44048e31ac7210ed6ea0630f25eb6c351c6b172bd062f36f237f
  Tainted: False
  Version: ImageMagick 6.2.4 02/10/07 Q16 http://www.imagemagick.org

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Heb je weleens geprobeerd in de file properties in PDF reader of Illustrator te kijken?

Oftewel als de dpi 72 is, zie je die waarde ergens terugkomen? ;)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

72x72 staat er notabene letterlijk in...

All my posts are provided as-is. They come with NO WARRANTY at all.


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

CyBeR schreef op donderdag 20 november 2008 @ 11:04:
72x72 staat er notabene letterlijk in...
Enige wat nog zou kunnen dat dit de pixels per cm zou kunnen zijn, maar daar geeft de documentatie gewoon antwoord op ;)

http://www.imagemagick.org/www/miff.html

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
okej dankje tot zover is duidelijk.
Bij een JPG geeft ie bij Units netjes PixelsPerInch aan, maar bij een eps/pdf niet:

Resolution: 72x72
Units: Undefined

Mag ik er dan vanuit gaan dit 72 DPI of Pixels per inch zijn?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Het enige waar je dan vanuit mag gaan is dat de applicatie die de pdf gegenereerd heeft de meta data niet volledig ingevuld heeft.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Casmo
  • Registratie: Juni 2002
  • Laatst online: 13-08 00:24

Casmo

Mr. Hero

Ik heb hier een functie die de DPI van X naar 72 schaalt. Wellicht kun je hier wat mee.

Dit is overig alleen voor JPG, dus weet niet hoe deze op andere formaten reageerd.

code:
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
<?php
    function ChangeDPI($File, $Dpi=72)
    {
        // Orginal by: Michaelsoft (http://nl2.php.net/manual/en/function.imagejpeg.php#78523)
        // Change the DPI of a file...
        $dpi_x      = $Dpi;
        $dpi_y      = $Dpi;
        
        // Read the file
        $size       = filesize($File);
        $image      = file_get_contents($File);

        // Update DPI information in the JPG header
        $image[13]  = chr(1);
        $image[14]  = chr(floor($dpi_x/255));
        $image[15]  = chr(      $dpi_x%255);
        $image[16]  = chr(floor($dpi_y/255));
        $image[17]  = chr(      $dpi_y%255);
        
        // Write the new JPG
        $f          = fopen($File, 'w');
        fwrite($f, $image, $size);
        fclose($f);
        chmod($File, 0777);
    }
?>

naxasius.com, mijn eigen mmorpg spel (browser based).


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Die hele methode schaalt helemaal niks. Het enige wat die methode doet is de nieuwe dpi waarde op een big-endian manier in 2 bytes wegschrijven zonder dat er ook maar iets met de oude waarde gedaan wordt en past daarna ook nog eens de filemask aan.

Daarnaast verneukt deze methode afbeeldingen met een afwijkende aspectratio.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Janoz schreef op donderdag 20 november 2008 @ 13:23:
Het enige waar je dan vanuit mag gaan is dat de applicatie die de pdf gegenereerd heeft de meta data niet volledig ingevuld heeft.
Oke dat snap ik maar zonder die Units gegevens heb je dus niets aan die 72x72?
Of kun je er dus vanuit gaan dat 72x72 de dpi waarde is?

Verwijderd

Topicstarter
zojuist heb ik even een 300 DPI(Pixels per Inch) file gemaakt in Photoshop.
Vervolgens opgeslagen en uitgelezen in ImageMagick..

Resultaat:

Resolution: 28.35x28.35
Units: Undefined

Ook dit is niet volledig duidelijk dus.

Zijn er andere manieren om DPI van een EPS of PDF uit te lezen?

  • MissingDog
  • Registratie: Augustus 2002
  • Niet online
Wat staat er bij je Geometry van dat 300DPI bestand? wellicht dat je op Geometry en Resolution onderling even een berekeningetje moet loslaten...

Verwijderd

Topicstarter
MissingDog schreef op donderdag 20 november 2008 @ 16:26:
Wat staat er bij je Geometry van dat 300DPI bestand? wellicht dat je op Geometry en Resolution onderling even een berekeningetje moet loslaten...
Geometry: 448x566
Resolution: 28.35x28.35
Units: Undefined

Wat voor berekening moet er op los gelaten worden evt?

[ Voor 5% gewijzigd door Verwijderd op 20-11-2008 16:28 ]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Verwijderd schreef op donderdag 20 november 2008 @ 16:22:
zojuist heb ik even een 300 DPI(Pixels per Inch) file gemaakt in Photoshop.
Vervolgens opgeslagen en uitgelezen in ImageMagick..

Resultaat:

Resolution: 28.35x28.35
Units: Undefined

Ook dit is niet volledig duidelijk dus.

Zijn er andere manieren om DPI van een EPS of PDF uit te lezen?
Heb je het al met een png / jpg geprobeerd. Ik lees wel dat diverse Imagemagick bugs hebben met betrekking tot resoluties :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
Verwijderd schreef op donderdag 20 november 2008 @ 13:11:
okej dankje tot zover is duidelijk.
Bij een JPG geeft ie bij Units netjes PixelsPerInch aan, maar bij een eps/pdf niet:

Resolution: 72x72
Units: Undefined

Mag ik er dan vanuit gaan dit 72 DPI of Pixels per inch zijn?
Bij JPG geeft ie wel netjes Units aan.
Pagina: 1