[PHP] Image kleiner maken

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • chuxiej
  • Registratie: Februari 2001
  • Laatst online: 13-07-2020
Ik wil als een image groter is dan 200 px (W of H) hem verkleinen naar max 200 px

Nu probeer ik het via dit sommetje:

PHP:
1
2
3
4
if($file_info['0'] > 200 OR $file_info['1'] > 200) {
  $file_info['0'] = $file_info['0'] / 1000 * 150;
  $file_info['1'] = $file_info['1'] / 1000 * 150;
}


Nu werkt dit wel maar als een image bv 189x243 krijg ik 28x36 terug

Maar ik wil dus dat de height zeg maar 200 is.

Iemand een idee hoe ik dit kan oplossen?

www.dannyhiemstra.nl


Acties:
  • 0 Henk 'm!

  • shlammod
  • Registratie: Juni 2001
  • Laatst online: 18-10-2024

shlammod

dus.... enzo....

uhm, allebei in een aparte if zetten?
Je doet nu namelijk wanneer breedte of hoogte > 200, verander dan de breedte en de hoogte

it's all fun and games, 'till someone loses an eye. Then it's just fun you can't see


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Wil je dat je plaatje binnen een window van 200 bij 200 past? Dan zul je je schaling niet vast moeten zetten (dus niet gewoon 15% nemen) maar afhankelijk van de huidige afmetingen schalen.

Verder algemene tip: Vermenigvuldig voordat je deelt. Op die manier ben je niet afhankelijk van floating point tussen resultaten waardoor rare effecten op kunnen treden.

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


Acties:
  • 0 Henk 'm!

  • chuxiej
  • Registratie: Februari 2001
  • Laatst online: 13-07-2020
ja ik wil dus dat die max 200 x 200 wordt.
en als de width wordt aangepast dan moet height ook aangepast worden (zodat het geen misvormde image wordt)

Maar ik ben verder niet echt een wiskundig expert
Maar ik neem aan zoiets:

width * 150 maar dan?

delen door ??

www.dannyhiemstra.nl


Acties:
  • 0 Henk 'm!

  • shlammod
  • Registratie: Juni 2001
  • Laatst online: 18-10-2024

shlammod

dus.... enzo....

kun je dan niet eerst uitrekeken hoe de verhoudingen liggen?
dus een image van 204 pix is 4 pix te groot... is ca 2% te groot... en zo verder rekenen ??

it's all fun and games, 'till someone loses an eye. Then it's just fun you can't see


Acties:
  • 0 Henk 'm!

  • Ultra
  • Registratie: Maart 2000
  • Niet online
breedte >= hoogte -> nieuwe breedte = 200, reken de nieuwe hoogte uit.
breedte < hoogte -> nieuwe hoogte = 200, reken de nieuwe breedte uit.
(Ga het niet helemaal voorkauwen ;))

[ Voor 10% gewijzigd door Ultra op 24-01-2003 14:11 ]


Acties:
  • 0 Henk 'm!

  • chuxiej
  • Registratie: Februari 2001
  • Laatst online: 13-07-2020
Na lang nadenken:

w = 1000
h = 800

procent = h * 100 / w
new h = 200 / 100 * procent

Uitkomst:
w = 200
h = 160

toch?

www.dannyhiemstra.nl


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

nope... Wat doet die w bij het berekenen van de hoogte?

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

Pagina: 1