probleem image resize
Ik ben bezig met het maken van een script waarbij je 4 afbeeldingen kan uploaden
Ik zou hier graag aan koppelen dat de afbeeldingen automatisch worden ge-resized,
maar dit lukt niet:(
ik heb het geprobeerd met imagemagicks maar tevergeefs:s
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
if(!file_exists(UPLOAD_DIR.$file)) {
$namen[0] = $plusNr."a.jpg";
$namen[1] = $plusNr."b.jpg";
$namen[2] = $plusNr."c.jpg";
$namen[3] = $plusNr."d.jpg";
$success = move_uploaded_file($_FILES['image']['tmp_name'][$number],UPLOAD_DIR.$namen[$number]);//verplaats en hernoem het bestand
$success = exec("/usr/local/safemode/convert -resize 150x150> -quality 60 $namen[$number] $namen[$number]");
$namen[0] = $plusNr."a.jpg";
$namen[1] = $plusNr."b.jpg";
$namen[2] = $plusNr."c.jpg";
$namen[3] = $plusNr."d.jpg";
$success = move_uploaded_file($_FILES['image']['tmp_name'][$number],UPLOAD_DIR.$namen[$number]);//verplaats en hernoem het bestand
$success = exec("/usr/local/safemode/convert -resize 150x150> -quality 60 $namen[$number] $namen[$number]");
Weet iemand een oplossing?
Concreet wil ik dus dat de 4 bestanden op de server staan en dat ze automatisch geresized zijn/worden onder dezelfde naam.
Schrijf dan rustig aan een functie waarmee je je afbeeldingen kunt resizen.
Tip: PHP Manual, daar staan ook voorbeelden in, en met een beetje handigheid en inzicht red je dat!!!
Succes!
Wat is er mis met deze code ?
exec("/usr/local/safemode/convert -resize 150x150> -quality 60 $namen[$number] $namen[$number]");
Ik zal er ook even naar zoeken. Kijk even wat voor programma convert is.
linux# vi /usr/local/safemode/convert
Convert
The main task of the Convert utility as its name suggests is converting image
formats. We can use Convert for more functions, like making thumbnails of images,
simulating a charcoal drawing, colorizing the image with the fill color, embossing an image, specifying a clipping mask, morphing an image sequence, and simulating an oil painting too.
Dus convert is ervoor gemaakt, maar het probleem is of hij de variabelen wel aankan. Hoe zou ik dat dan kunnen doen?
en laat even weten hoe de syntax moet zijn voor convert.
./convert
-resize height,width (moet hier een komma tussen of een x?)
> (waar staat het groter-dan -teken voor?)
-quality [int] (moet hier misschien het px achter of iets?)
Misschien moet je je namen escapen?
Code (php)
1
2
3
2
3
<?
exec("/usr/local/safemode/convert -resize 150x150> -quality 60 ".$namen[$number]." ".$namen[$number].")";
?>
exec("/usr/local/safemode/convert -resize 150x150> -quality 60 ".$namen[$number]." ".$namen[$number].")";
?>
#Wat je kunt bekijken:
Code (php)
1
2
3
4
5
2
3
4
5
<?
$to_exec1 = 'exec("/usr/local/safemode/convert -resize 150x150> -quality 60 $namen[$number] $namen[$number]");';
echo $to_exec1;
?>
$to_exec1 = 'exec("/usr/local/safemode/convert -resize 150x150> -quality 60 $namen[$number] $namen[$number]");';
echo $to_exec1;
?>
en/of
Code (php)
1
2
3
4
5
2
3
4
5
<?
$to exec2 = 'exec("/usr/local/safemode/convert -resize 150x150> -quality 60 ".$namen[$number]". ."$namen[$number].");';
echo $to_exec2;
?>
$to exec2 = 'exec("/usr/local/safemode/convert -resize 150x150> -quality 60 ".$namen[$number]". ."$namen[$number].");';
echo $to_exec2;
?>
En bekijk dan de verschillen.
Gewijzigd op 01/01/1970 01:00:00 door - Jim -
en laat even weten hoe de syntax moet zijn voor convert.
./convert
-resize height,width (moet hier een komma tussen of een x?)
> (waar staat het groter-dan -teken voor?)
-quality [int] (moet hier misschien het px achter of iets?)
Misschien moet je je namen escapen?
Code (php)
1
2
3
2
3
<?php
exec("/usr/local/safemode/convert -resize 150x150> -quality 60 ".$namen[$number]." ".$namen[$number].")";
?>
exec("/usr/local/safemode/convert -resize 150x150> -quality 60 ".$namen[$number]." ".$namen[$number].")";
?>
#Wat je kunt bekijken:
Code (php)
1
2
3
4
5
2
3
4
5
<?
$to_exec1 = 'exec("/usr/local/safemode/convert -resize 150x150> -quality 60 $namen[$number] $namen[$number]");';
echo $to_exec1;
?>
$to_exec1 = 'exec("/usr/local/safemode/convert -resize 150x150> -quality 60 $namen[$number] $namen[$number]");';
echo $to_exec1;
?>
en/of
Code (php)
1
2
3
4
5
2
3
4
5
<?
$to exec2 = 'exec("/usr/local/safemode/convert -resize 150x150> -quality 60 ".$namen[$number]." ".$namen[$number].");';
echo $to_exec2;
?>
$to exec2 = 'exec("/usr/local/safemode/convert -resize 150x150> -quality 60 ".$namen[$number]." ".$namen[$number].");';
echo $to_exec2;
?>
En bekijk dan de verschillen.
Gewijzigd op 01/01/1970 01:00:00 door - Jim -
Het laatste laat de image upload toe, maar doet geen resize!
Iets in deze aard werkt dan wel :s
exec("/usr/local/safemode/convert -resize 150x150> -quality 60 $fileName $newFileName");
maar het is niet handig in gebruikt, want er zijn 4 foto's en het kan wel 100 keren gebeuren met verschillende afbeeldingen.
Wat zou hiervoor een oplossing kunnen zijn?
Alvast bedankt voor de hulp
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
Post hiervan de resultaten eens....
string(97) "exec("/usr/local/safemode/convert -resize 150x150> -quality 60 $namen[$number] $namen[$number]");"
de tweede geeft dit : Parse error: syntax error, unexpected T_STRING uploadresize.php on line 55
Moet een Underscore (_) tussen ipv spatie
Waardoor het mogelijk fout kan gaan, is dat je een array heen stuurt, die variabel is, en de index ook. Je moet dan heel goed weten wat je doet!
Gewijzigd op 01/01/1970 01:00:00 door - Jim -
string(97) "exec("/usr/local/safemode/convert -resize 150x150> -quality 60 $namen[$number] $namen[$number]");"
string(104) "exec("/usr/local/safemode/convert -resize 150x150> -quality 60 ".$namen[$number]." ".$namen[$number].");"