FPDF image, afbeeldingen probleem oplossen door DPI
 
Home | Over ons | Diensten | Portfolio | Contact
 
 
 
 
Recent Werk
Wij zijn gespecialiseerd in het 'bedenken', 'ontwerpen' en 'realiseren' van online-communicatie. Benieuwd? Klik op de onderstaande afbeeldingen en blader eens door ons portfolio heen.
Crossmediale campagne, Liever een andere kleur..? Autobedrijf Doggen Kopen van Mitros
Arbo Impact Bio-Connect promotie flyers Freson Producties
ikwilbanden.nl Best4it Meubelspuiterij Roosendaal
Keuzewijzer 'De Furie' Wereldrestaurant dara Govers Automaterialen
 
FPDF Image() probleem, de oplossing: DPI
Samenvattend: Werk altijd met negatieve waarden in de FPDF image() functie die overeenkomen met de DPI waarde van de FPDF afbeelding (image) of / en zorg voor een afbeelding op 92 DPI.

FPDF Image() probleem, hoe krijg ik perfecte afbeeldingen in mijn PDF?
FPDF en afbeeldingen (image) is een combinatie die menig programmeur veel hoofdbrekens kan geven. Zo liepen ook wij tegen het welbekende probleem aan dat de FPDF afbeelding niet scherp werd getoond in de zo zorgvuldig uitgemeten PDF.

Na lang zoeken, testen en opnieuw proberen om de het image probleem van FPDF te doorgronden zijn we er uit eindelijk in geslaagd om het probleem op te lossen. Om andere dit zeer frustrerende traject te besparen hebben we besloten om onze ervaring op papier te zetten. Hopelijk helpt het iedereen om de FPDF afbeeldingen in FPDF te krijgen zoals bedoeld.

Het probleem van de FPDF image (afbeeldingen)
Het niet juist weergeven van een FPDF image verschijnt vaak in de vorm van een wazige uitgerekte afbeelding, een te kleine afbeelding of simpel weg een afbeelding die compleet op de verkeerde plaats verschijnt indien er een transparant deel in de image zit.

Het probleem wordt veroorzaakt doordat FPDF de verhoudingen van alle afbeelding hetzelfde schaalt maar in de praktijk zijn niet alle afbeeldingen opgemaakt in dezelfde verhouding. Standaard schaalt FPDF een afbeelding op 92 DPI (Dots per inch) in.

Een voorbeeld om het probleem te illustreren:
We laden in de FPDF image() functie een afbeelding opgemaakt op 300 DPI en met een breedte/ hoogte verhouding van 30mm bij 30mm. Als deze afbeelding in FPDF geladen wordt zonder configuratie, dan wordt de FPDF afbeelding gelezen als 92 DPI. Doormiddel van omrekenen komen we er achter dat de FPDF afbeelding dan geen 30mm bij 30mm wordt maar 97.7mm bij 97.7mm.

Hoe krijg ik dan een scherp en juiste afbeelding (image) in FPDF?
Om in FPDF een scherpe afbeelding te krijgen zijn er meerdere opties mogelijk. De eerste optie is het juist invullen de van de FPDF image() functie. De tweede optie is het opmaken van de FPDF afbeelding in 92 DPI zodat de FPDF afbeelding voldoet aan de standaard in FPDF ingebouwde FPDF afbeeldingsverhouding.

Oplossing 1: Het juist invullen van de FPDF image() functie
FPDF heeft de functie genaamd image(). Deze functie heeft de volgende parameters:
  • File: De locatie van de FPDF afbeelding / image
  • X: De positie van de FPDF afbeelding / image gezien vanuit de linkerkant van de pdf bladzijde
  • Y: De positie van de FPDF afbeelding / image gezien vanuit de bovenkant van de pdf bladzijde
  • w: De breedte van de FPDF afbeelding / image
  • h: De hoogte van de FPDF afbeelding / image
  • Type: Het type van de FPDF afbeelding (Jpeg/png/ etc.)
  • Link: Een hyperlink die toegekend wordt aan de FPDF afbeelding / image
Interessant zijn vooral de w (width) en h (height) parameters. Deze parameters accepteren drie verschillende waardes:

Geen waarde ("" of 0):
FPDF calculeert automatisch de breedte en hoogte van de FPDF afbeelding. Hiervoor gebruikt FPDF de standaard pixelverhouding van een afbeelding namelijk 92 DPI. Dit wil zeggen dat FPDF er van uit gaat dat elke afbeelding op 92 DPI is opgemaakt, zie het eerdere voorbeeld om het probleem te illustreren

Positieve waardes (1,2,3....n):
Bij een positieve waarde wordt door FPDF de image neergezet met een breedte en hoogte in de gekozen maat (meestal millimeter, pixels of punten). Bijvoorbeeld is de gekozen maat in millimeters (mm) en wordt 30 in gevuld, dan wordt de FPDF afbeelding door FPDF 3 cm breed in de PDF geplaatst.

Negatieve waardes (-1,-2...n):
Zodra er in FPDF een negatieve waarde wordt ingegeven verandert heel de functie van de breedte en hoogte. In plaats van de FPDF afbeelding te schalen naar een bepaalde breedte en/of hoogte in mm wordt de FPDF afbeelding geplaatst met de opgegeven DPI waarde zonder dat de FPDF afbeelding geschaald wordt naar een bepaalde breedte en hoogte.

Gebruik, indien mogelijk, altijd de negatieve waarde optie in FPDF
Door in de FPDF image() functie de negatieve waarde te gebruiken, wordt de FPDF afbeelding juist geschaald en scherp weergegeven op basis van zijn oorspronkelijke afmetingen.

Voorbeeld voor het gebruiken van negatieve waarden:

Voor een afbeelding van 300 DPI gebruik je voor w (width) en h (Height) de waarde -300. $pdf->image("afbeelding.jpg",10,10,-300,-300,"jpeg","")

Hoe vindt ik dan de DPI verhouding?
De DPI verhouding kan meestal via een grafisch programma (Photoshop etc.) of via de informatie (Windows verkenner) van de FPDF afbeelding gevonden worden.

Oplossing 2: Het opmaken van de FPDF afbeelding op 92DPI
Omdat FPDF elke afbeelding standaard op 92 DPI inschaalt is het voor de hand liggend om de FPDF afbeeldingen die in de FPDF image() functie gebruikt worden ook op 92 DPI op te maken. Bijvoorbeeld een afbeelding van 30mm bij 30mm opgemaakt in 92 DPI wordt in FPDF ook weergegeven als 30mm bij 30mm.

Combineer de oplossingen voor optimaal resultaat
Ondanks dat het juist weergeven van een afbeelding op 92 DPI automatisch gebeurt is het toch raadzaam om oplossing 1 en 2 altijd te combineren. Een afbeelding op 92 DPI met een juist ingevulde FPDF image functie zal dan in de PDF altijd resulteren in een afbeelding die scherp en groot genoeg is!

Artikel keywords:
FPDF, image, afbeelding, probleem, oplossen, DPI, FPDF afbeelding, FPDF image, FPDF afbeelding probleem
JeP | Rechtzaad 15 | 4703 RC Roosendaal | 0165 - 39 51 27 | info@jep-web.nl
 
     
Algemene Voorwaarden | Disclaimer | Sitemap Concept en Creatie: JeP, Creatieve Realisten ©2012