[php] size van plaatje verandere (in <img tag)

Pagina: 1
Acties:

  • Martink
  • Registratie: Juni 2001
  • Laatst online: 14-09 13:52
Ik ben bezig met php scriptje die grote van plaatje verandert maar het lukt niet erg :'(
ik doe vast iets fout ofzo maar weet niet wat
max grote is 100 maar met mijn script blijft het boven 100 staan.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
$size = GetImageSize ("$pic"); 
$width = $size[0];
$height = $size[1];

if ($height == $width) { 
    $height = "100";
    $width = "100";
} elseif ($width < $height) {
$temp = $width-100;
$height = $height-$temp;
$width = "100";
} elseif ($width > $height) {
$temp = $height-100;
$width = $width-$temp;
$height = "100";
}
?>

  • Tim
  • Registratie: Mei 2000
  • Laatst online: 23-07 15:18

Tim

:?
Misschien een URL?

Verder vind ik dat je de verhoudingen ook een beetje raar uitrekend..

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Op woensdag 26 december 2001 23:27 schreef Martink het volgende:
Ik ben bezig met php scriptje die grote van plaatje verandert maar het lukt niet erg :'(
ik doe vast iets fout ofzo maar weet niet wat
max grote is 100 maar met mijn script blijft het boven 100 staan.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
$size = GetImageSize ("$pic"); 
$width = $size[0];
$height = $size[1];

if ($height == $width) { 
    $height = "100";
    $width = "100";
} elseif ($width < $height) {
$temp = $width-100;
$height = $height-$temp;
$width = "100";
} elseif ($width > $height) {
$temp = $height-100;
$width = $width-$temp;
$height = "100";
}
?>
Ok we lopen even door je script.
We nemen als height 20 en als width 220.
PHP:
1
2
3
4
5
<?
if ($height == $width) { 
    $height = "100";
    $width = "100";
?>

$height is niet gelijk aan $width dus deze wordt niet uitgevoerd.
PHP:
1
2
3
4
5
6
7
<?
elseif ($width < $height) {
$temp = $width-100;
$height = $height-$temp;
$width = "100";
}
?>

$width is niet kleiner als $height deze wordt dus ook niet uitgevoerd.
PHP:
1
2
3
4
5
6
7
<?
elseif ($width > $height) {
$temp = $height-100;
$width = $width-$temp;
$height = "100";
}
?>

$width is groter als height dat klopt.
$temp wordt dan 20 - 100 = -80
$width wordt dan 220 - (-80) = 220 + 80 = 300
$height wordt de string! "100";

je algortime klopt dus niet

TIP: schrijf in stappen op wat je wilt doen en vertaal dat stap voor stap naar code/

Verwijderd

:D :X

  • Martink
  • Registratie: Juni 2001
  • Laatst online: 14-09 13:52
maar dan zou deze code volgens mij wel goed zijn :(
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
if ($height == $width) { 
    $height = "100";
    $width = "100";
} elseif ($width > $height) {
$temp = $width-100;
$height = $height-$temp;
$width = "100";
} elseif ($width < $height) {
$temp = $height-100;
$width = $width-$temp;
$height = "100";
}
?>

ok er zit niet meer boven 100 maar wel onder 0!!! :'(

edit:

wacht ik ben natuurlijk dom!
als ik er 100 vanaf trek kan het ook zijn dat de $height nog hoger is dan $width :(
nu zit ik vast :'(
hoe moet ik het dan doen!
hele verhouding van mij klopt natuurlijk niet :(

  • Lord-M
  • Registratie: September 2000
  • Laatst online: 17-07 20:42
Is het niet makkelijker om een verhouding uit te rekenen (bv width:height = 1:3) en met behulp van die verhouding de widht en height in te stellen?

Dus je deelt width door height. Dan geef je height de maximale grote (100) en dan doe je die 100 maal width/height en dat wordt dan de grote van de height.

[edit]

ff stukje code (het is al laat... wees niet te kritisch)
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
$size = GetImageSize ("$pic"); 
$width = $size[0];
$height = $size[1];

$max = 100;

$verhouding = $width / $height;
$height = $max;
$width = $max * $verhouding;
?>

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op woensdag 26 december 2001 23:33 schreef wasigh het volgende:
$height wordt de string! "100";
En dat is nou weer iets dat voor php niet zo veel uitmaakt. Het is niet handig, want het wordt er alleen maar slomer van, maar het gaat daar niet ineens niet of wel van werken...

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Op donderdag 27 december 2001 00:19 schreef ACM het volgende:

[..]

En dat is nou weer iets dat voor php niet zo veel uitmaakt. Het is niet handig, want het wordt er alleen maar slomer van, maar het gaat daar niet ineens niet of wel van werken...
Ik weet het ;(
maar dan is het nog niet netjes ;)

  • Martink
  • Registratie: Juni 2001
  • Laatst online: 14-09 13:52
Op woensdag 26 december 2001 23:58 schreef Lord-M het volgende:
Is het niet makkelijker om een verhouding uit te rekenen (bv width:height = 1:3) en met behulp van die verhouding de widht en height in te stellen?

Dus je deelt width door height. Dan geef je height de maximale grote (100) en dan doe je die 100 maal width/height en dat wordt dan de grote van de height.

[edit]

ff stukje code (het is al laat... wees niet te kritisch)
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
$size = GetImageSize ("$pic"); 
$width = $size[0];
$height = $size[1];

$max = 100;

$verhouding = $width / $height;
$height = $max;
$width = $max * $verhouding;
?>
met die code kom je toch boven de 100 :'(
het maakt niet uit welke 100 is maar als die andere maar onder de 100 is..
maar ik weet niet hoe dat moet :'(

  • Lord-M
  • Registratie: September 2000
  • Laatst online: 17-07 20:42
Dan ga je eerst kijken welke twee van de waardes het grootst is en dan de verhouding zo bepalen dat de grootste waarde 100 wordt en de ander dus kleiner dan 100 (verhouding dus altijd kleiner of gelijk aan 1).
Combineer mijn stukje met je eigen code en je komt al een heel eind...

  • Martink
  • Registratie: Juni 2001
  • Laatst online: 14-09 13:52
Ow moet dan natuurlijk ook de deling omdraaien :P
daarom klopte er niks van
laat ik maar eerst gaan slapen
mischien lukt het dan beter
:Z

Verwijderd

Op donderdag 27 december 2001 00:36 schreef Martink het volgende:
Ow moet dan natuurlijk ook de deling omdraaien :P
daarom klopte er niks van
laat ik maar eerst gaan slapen
mischien lukt het dan beter
:Z
nou denk het niet, pas als je wakker wordt wordt het pas een mogelijkheid :+

Verwijderd

Op woensdag 26 december 2001 23:34 schreef Xtentic het volgende:
:D :X
Ja das ook een manier om aan je posts te komen, gewoon ff ergens een smilie posten.. Dat kan Tim ook: >:)

  • Martink
  • Registratie: Juni 2001
  • Laatst online: 14-09 13:52
Hee nu werkt mijn scriptje!
ik ben een genie!
PHP:
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
<?
$size = GetImageSize ("$pic"); 
$width = $size[0];
$height = $size[1];

if ($height == $width) { 
    $height = "100";
    $width = "100";
} elseif ($width < $height) {
$size = GetImageSize ("$pic");
$width = $size[0];
$height = $size[1];
$max = 100;
$verhouding = $width / $height;
$height = $max;
$width = $max * $verhouding;
} elseif ($width > $height) {
$size = GetImageSize ("$pic");
$width = $size[0];
$height = $size[1];
$max = 100;
$verhouding =  $height / $width;
$width = $max;
$height = $max * $verhouding;
}
?>

  • Joto
  • Registratie: Juni 2000
  • Laatst online: 17:49
beetje slordig een plaatje van 1600x1200 in tag zetten die veel kleiner zijn.

dit lijkt me netter, ( zelf bijwerken )
PHP:
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
<?
function ResizePic($SourcePath,$DestPath,$W,$H,$S,$T) {
// $W = Desired Width of PIC out if 0 aspect ratio will be kept    ( $H must be set )
// $H = Desired Height of PIC out if 0 aspect ratio will be kept  ( $W must be set )
// $S = Desired Scale of PIC out 1= 100% .5 = 50% 1.5 = 150% ( over rules $W and $H)
// $S = Desired Thumb of PIC out          ( over rules $W and $H and $S)

     
    $Extent = strtolower( strrchr ( $SourcePath, "."));
    
    if ($Extent ==".jpg"){$ImIn    = ImageCreateFromJPEG  ($SourcePath);}
    if ($Extent ==".png"){$ImIn    = ImageCreateFromPNG   ($SourcePath);}
    
    $WI=ImageSX($ImIn);
     $HI=ImageSY($ImIn);      
    if ((isset($T)) and (!$T==0)){ 
                    if ($WI>$HI){$W=$T;$H=0;}
                    if ($HI>$WI){$H=$T;$W=0;}        
                    $S=0;
    }
    if ((isset($S)) and (!$S==0)){ 
                    if ($S>4){$S=4;}
                        $W=$S*$WI; $H=$S*$HI;
    } 
    if ((!isset($H)) or ($H==0))    {$H=round($W/$WI*$HI);}    
    if ((!isset($W)) or ($W==0))    {$W=round($H/$HI*$WI);}    
    if ($W>3001){$W=200;}
    if ($H>3001){$H=200;}
        $ImOut    = ImageCreate($W,$H);
        ImageCopyResized($ImOut,$ImIn,0,0,0,0,$W,$H,$WI,$HI); 
        ImageJPEG ($ImOut,$DestPath);
        ImageDestroy($ImIn);
        ImageDestroy($ImOut);
     
}                            
?>

1+1+1 = 1


  • Martink
  • Registratie: Juni 2001
  • Laatst online: 14-09 13:52
Op donderdag 27 december 2001 17:19 schreef Joto het volgende:
beetje slordig een plaatje van 1600x1200 in tag zetten die veel kleiner zijn.

dit lijkt me netter, ( zelf bijwerken )
PHP:
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
<?
function ResizePic($SourcePath,$DestPath,$W,$H,$S,$T) {
// $W = Desired Width of PIC out if 0 aspect ratio will be kept    ( $H must be set )
// $H = Desired Height of PIC out if 0 aspect ratio will be kept  ( $W must be set )
// $S = Desired Scale of PIC out 1= 100% .5 = 50% 1.5 = 150% ( over rules $W and $H)
// $S = Desired Thumb of PIC out          ( over rules $W and $H and $S)

     
    $Extent = strtolower( strrchr ( $SourcePath, "."));
    
    if ($Extent ==".jpg"){$ImIn    = ImageCreateFromJPEG  ($SourcePath);}
    if ($Extent ==".png"){$ImIn    = ImageCreateFromPNG   ($SourcePath);}
    
    $WI=ImageSX($ImIn);
     $HI=ImageSY($ImIn);      
    if ((isset($T)) and (!$T==0)){ 
                    if ($WI>$HI){$W=$T;$H=0;}
                    if ($HI>$WI){$H=$T;$W=0;}        
                    $S=0;
    }
    if ((isset($S)) and (!$S==0)){ 
                    if ($S>4){$S=4;}
                        $W=$S*$WI; $H=$S*$HI;
    } 
    if ((!isset($H)) or ($H==0))    {$H=round($W/$WI*$HI);}    
    if ((!isset($W)) or ($W==0))    {$W=round($H/$HI*$WI);}    
    if ($W>3001){$W=200;}
    if ($H>3001){$H=200;}
        $ImOut    = ImageCreate($W,$H);
        ImageCopyResized($ImOut,$ImIn,0,0,0,0,$W,$H,$WI,$HI); 
        ImageJPEG ($ImOut,$DestPath);
        ImageDestroy($ImIn);
        ImageDestroy($ImOut);
     
}                            
?>
Ehm ja als die site GD ondersteuning had had ik dat wel gedaan :)
maarja dat heeft die site van mijn neef niet
staan nu een paar 100 html bestanden op :P

Verwijderd

Op donderdag 27 december 2001 11:32 schreef GDOG het volgende:

[..]

Ja das ook een manier om aan je posts te komen, gewoon ff ergens een smilie posten.. Dat kan Tim ook: >:)
:? nee ik had me post snel veranderd :D

  • Martink
  • Registratie: Juni 2001
  • Laatst online: 14-09 13:52
Op donderdag 27 december 2001 17:43 schreef Xtentic het volgende:

[..]

:? nee ik had me post snel veranderd :D
hmm jullie doen alle 2 het zelfte :P
posten en dan weer op hem/haar en zo doorgaan :P
Pagina: 1