Hello,
Ik heb een PHP scriptje dat na het uploaden foto's verkleind.
2 problemen:
- de zware foto's moeten eerst geupload worden
- het verkleinen op de server neemt nogal wat tijd in beslag. ongeveer 15sec per foto
Is er een manier om dit client-side te doen en liefst nog op een snelle manier?
Het scriptje zal op een tablet moeten werken (i-pad, android, windows, ...)
Hieronder even het scriptje dat ik nu gebruik.
Graag jullie input.
Groeten,
Eric
Ik heb een PHP scriptje dat na het uploaden foto's verkleind.
2 problemen:
- de zware foto's moeten eerst geupload worden
- het verkleinen op de server neemt nogal wat tijd in beslag. ongeveer 15sec per foto
Is er een manier om dit client-side te doen en liefst nog op een snelle manier?
Het scriptje zal op een tablet moeten werken (i-pad, android, windows, ...)
Hieronder even het scriptje dat ik nu gebruik.
PHP:
<?php
class SimpleImage {
var $image;
var $image_type;
function load($filename) {
$image_info = getimagesize($filename);
$this->image_type = $image_info[2];
if( $this->image_type == IMAGETYPE_JPEG ) {
$this->image = imagecreatefromjpeg($filename);
} elseif( $this->image_type == IMAGETYPE_GIF ) {
$this->image = imagecreatefromgif($filename);
} elseif( $this->image_type == IMAGETYPE_PNG ) {
$this->image = imagecreatefrompng($filename);
}
}
function save($filename, $image_type=IMAGETYPE_JPEG, $compression=75, $permissions=null) {
if( $image_type == IMAGETYPE_JPEG ) {
imagejpeg($this->image,$filename,$compression);
} elseif( $image_type == IMAGETYPE_GIF ) {
imagegif($this->image,$filename);
} elseif( $image_type == IMAGETYPE_PNG ) {
imagepng($this->image,$filename);
}
if( $permissions != null) {
chmod($filename,$permissions);
}
}
function output($image_type=IMAGETYPE_JPEG) {
if( $image_type == IMAGETYPE_JPEG ) {
imagejpeg($this->image);
} elseif( $image_type == IMAGETYPE_GIF ) {
imagegif($this->image);
} elseif( $image_type == IMAGETYPE_PNG ) {
imagepng($this->image);
}
}
function getWidth() {
return imagesx($this->image);
}
function getHeight() {
return imagesy($this->image);
}
function resizeToHeight($height) {
$ratio = $height / $this->getHeight();
$width = $this->getWidth() * $ratio;
$this->resize($width,$height);
}
function resizeToWidth($width) {
$ratio = $width / $this->getWidth();
$height = $this->getheight() * $ratio;
$this->resize($width,$height);
}
function scale($scale) {
$width = $this->getWidth() * $scale/100;
$height = $this->getheight() * $scale/100;
$this->resize($width,$height);
}
function resize($width,$height) {
$new_image = imagecreatetruecolor($width, $height);
imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight());
$this->image = $new_image;
}
}
?>
<?php
$foto = "test.JPG";
include('ires.php');
$image = new SimpleImage();
$image->load($foto);
$image->resizeToWidth(1024);
$image->save($foto);
?>
Groeten,
Eric
Laatst bewerkt: