Script voor resizen afbeeldingen in invulformulier

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jan Jaap van der Sluijs

Jan Jaap van der Sluijs

10/11/2011 15:55:12
Quote Anchor link
Hallo,

Ik heb een invulformulier gemaakt waarbij het mogelijk is om (9) afbeeldingen mee te sturen. Nu loop ik tegen het probleem aan dat afbeeldingen soms in zijn totaliteit te groot zijn voor de mail.

Ik ben eigenlijk op zoek naar een script dat automatisch de afbeeldingen verkleind naar een vaste grootte en dan vervolgens mailt.

Iemand wat op de plank liggen of een idee hoe ik dit kan oplossen?

Alvast bedankt!
 
PHP hulp

PHP hulp

23/11/2024 01:32:27
 
- Ariën  -
Beheerder

- Ariën -

10/11/2011 16:34:40
 
Jan Jaap van der Sluijs

Jan Jaap van der Sluijs

10/11/2011 17:01:07
Quote Anchor link
Bedankt voor de snelle reactie, maar de url werkt niet.
 
- Ariën  -
Beheerder

- Ariën -

10/11/2011 17:02:41
Quote Anchor link
Hier wel. Maar voor de mensen die:
- De link niet kunnen bereiken
- Of lui zijn
- Of een defecte muisknop hebben

Et voila:


Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?php
 
/*
* File: SimpleImage.php
* Author: Simon Jarvis
* Copyright: 2006 Simon Jarvis
* Date: 08/11/06
* Link: http://www.white-hat-web-design.co.uk/articles/php-image-resizing.php
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details:
* http://www.gnu.org/licenses/gpl.html
*
*/

 
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;
   }      
 
}

?>


Usage

Save the above file as SimpleImage.php and take a look at the following examples of how to use the script.

The first example below will load a file named picture.jpg resize it to 250 pixels wide and 400 pixels high and resave it as picture2.jpg

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
   include('SimpleImage.php');
   $image = new SimpleImage();
   $image->load('picture.jpg');
   $image->resize(250,400);
   $image->save('picture2.jpg');
?>


If you want to resize to a specifed width but keep the dimensions ratio the same then the script can work out the required height for you, just use the resizeToWidth function.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
   include('SimpleImage.php');
   $image = new SimpleImage();
   $image->load('picture.jpg');
   $image->resizeToWidth(250);
   $image->save('picture2.jpg');
?>


You may wish to scale an image to a specified percentage like the following which will resize the image to 50% of its original width and height


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
   include('SimpleImage.php');
   $image = new SimpleImage();
   $image->load('picture.jpg');
   $image->scale(50);
   $image->save('picture2.jpg');
?>


You can of course do more than one thing at once. The following example will create two new images with heights of 200 pixels and 500 pixels
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
   include('SimpleImage.php');
   $image = new SimpleImage();
   $image->load('picture.jpg');
   $image->resizeToHeight(500);
   $image->save('picture2.jpg');
   $image->resizeToHeight(200);
   $image->save('picture3.jpg');
?>


The output function lets you output the image straight to the browser without having to save the file. Its useful for on the fly thumbnail generation

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
   header('Content-Type: image/jpeg');
   include('SimpleImage.php');
   $image = new SimpleImage();
   $image->load('picture.jpg');
   $image->resizeToWidth(150);
   $image->output();
?>


The following example will resize and save an image which has been uploaded via a form

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
   if( isset($_POST['submit']) ) {
 
      include('SimpleImage.php');
      $image = new SimpleImage();
      $image->load($_FILES['uploaded_image']['tmp_name']);
      $image->resizeToWidth(150);
      $image->output();
   }
else {
 
?>

 
   <form action="upload.php" method="post" enctype="multipart/form-data">
      <input type="file" name="uploaded_image" />
 
      <input type="submit" name="submit" value="Upload" />
 
   </form>
 
<?php
   }
?>
Gewijzigd op 10/11/2011 17:05:49 door - Ariën -
 
Jan Jaap van der Sluijs

Jan Jaap van der Sluijs

11/11/2011 13:21:09
Quote Anchor link
Bedankt het werkt!
Blijkbaar werd de URL in eerste instantie geblokkeerd.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.