Trouble with image orientation

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Wicher Hoek

Wicher Hoek

21/01/2023 12:48:55
Quote Anchor link
Hello everybody,

I have images on a website on wich i am fooling arround with a bit.
i want to make thumbs from bigger pictures, that i worked out.
but when resizing the pictures to smaller versions they tend to get displayed rotated because the orientation is set wrong.
I found below function to repair that issue and i tried to add some code to it so it will work also with other then jpg files.
the files i am currently trying to resize are all jpg btw.
I bet you all can see i am no master at php.... forgive me for that....

i hope someone can point me away from the error i am getting with below function.
i get the following error:
"Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2988 bytes) "

The line that gives the error is
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$img = imagerotate($img, $deg, 0);



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
function correctImageOrientation($filename, $type) {
//echo $filename; exit;
  if (function_exists('exif_read_data')) {
    $exif = exif_read_data($filename);
    //echo $exif['Orientation'].'<br>';
    //print_r($exif);
    if($exif && isset($exif['Orientation'])) {
      $orientation = $exif['Orientation'];
      if($orientation != 1){
        switch ($type)
        {
            case IMAGETYPE_JPEG:
                $img = imagecreatefromjpeg($filename);
                break;
    
            case IMAGETYPE_GIF:
                $img = imagecreatefromgif($filename);
                break;
    
            case IMAGETYPE_PNG:
                $img = imagecreatefrompng($filename);
                break;
    
            case IMAGETYPE_JPG:
                $img = imagecreatefromjpeg($filename);
                break;

            case IMAGETYPE_WBMP:
                $img = imagecreatefromwbmp($filename);
                break;
        }

        $deg = 0;
        switch ($orientation) {
          case 3:
            $deg = 180;
            break;
          case 6:
            $deg = 270;
            break;
          case 8:
            $deg = 90;
            break;
        }
        
        //echo $img;
        //echo $deg;
        //exit;
        if ($deg) {
          $img = imagerotate($img, $deg, 0);      
        }
        // then rewrite the rotated image back to the disk as $filename
        switch ($type)
        {
            case IMAGETYPE_JPEG:
                imagejpeg($img, $filename);
                break;
    
            case IMAGETYPE_GIF:
                imagegif($img, $filename);
                break;
    
            case IMAGETYPE_PNG:
                imagepng($img, $filename);
                break;
    
            case IMAGETYPE_JPG:
                imagepng($img, $filename);
                break;

            case IMAGETYPE_WBMP:
                image2wbmp($img, $filename);
                break;
        }
      } // if there is some rotation necessary
    } // if have the exif orientation info
  } // if function exists    
}
 
PHP hulp

PHP hulp

28/03/2024 14:41:46
 
- Ariën  -
Beheerder

- Ariën -

21/01/2023 13:49:09
Quote Anchor link
This is a Dutch forum, so it is no problem to post your message in Dutch here. :-)

Can you check in phpinfo() what your memory limit is? It seems your run out of allocated memory.
You can increase 'memory_limit' with a php.ini or with ini_set.
Gewijzigd op 21/01/2023 13:49:49 door - Ariën -
 
Wicher Hoek

Wicher Hoek

21/01/2023 14:29:29
Quote Anchor link
memory_limit 128M

Stom van mij, ik ga er automatisch al van uit dat alles op internet tegenwoordig in het engels is.
 
- Ariën  -
Beheerder

- Ariën -

21/01/2023 14:32:49
Quote Anchor link
Deze is toch echt Nederlands :-)
Ik zou je memory_limit eens verhogen naar 256 MB. Met 128 MB zit je vaak al erg krap. Vooral als je grote afbeeldingen wilt bewerken.
Gewijzigd op 21/01/2023 14:33:53 door - Ariën -
 
Wicher Hoek

Wicher Hoek

21/01/2023 14:34:26
Quote Anchor link
tnx, ik ga dat proberen. ik dacht dat 128mb al vrij veel was
 
- Ariën  -
Beheerder

- Ariën -

21/01/2023 14:39:36
Quote Anchor link
Het ligt er een beetje aan wat je allemaal tegelijkertijd draait. Als je een uitgebreide Joomla of Wordpress draait, of een webshop, dan kan ik mij indenken dat 128 MB opeens erg krap is. Als het een zelfgebouwde site is, dan kan je ook kijken of je het een en ander kan optimaliseren. Misschien heb je wel queries die in een loop draaien, en kan je er een JOIN van maken. Of heb je ellenlange array's die overbodig lang zijn.
Gewijzigd op 21/01/2023 14:40:58 door - Ariën -
 
Wicher Hoek

Wicher Hoek

21/01/2023 14:40:42
Quote Anchor link
Top!!
gelukt met ini_set('memory_limit','256M');
heel erg bedankt.
alle thumbs worden nu mooi weer rechtop neergezet.



Toevoeging op 21/01/2023 14:41:58:

Misschien een handige functie voor anderen....

Toevoeging op 21/01/2023 14:45:12:

- Ariën - op 21/01/2023 14:39:36:
Het ligt er een beetje aan wat je allemaal tegelijkertijd draait. Als je een uitgebreide Joomla of Wordpress draait, of een webshop, dan kan ik mij indenken dat 128 MB opeens erg krap is. Als het een zelfgebouwde site is, dan kan je ook kijken of je het een en ander kan optimaliseren. Misschien heb je wel queries die in een loop draaien, en kan je er een JOIN van maken. Of heb je ellenlange array's die overbodig lang zijn.


Ik heb ongetwijfelt overbodige stukken code in mijn programmeerwerk zitten, maar het is maar hobbymatig geknutsel....
 
- Ariën  -
Beheerder

- Ariën -

21/01/2023 14:51:09
Quote Anchor link
Elke optimalisatieslag is een goede slag, zeg ik maar altijd.
 
Van Noord

Van Noord

01/02/2023 15:24:16
Quote Anchor link
- Ariën - op 21/01/2023 14:39:36:
Het ligt er een beetje aan wat je allemaal tegelijkertijd draait. Als je een uitgebreide Joomla of Wordpress draait, of een webshop, dan kan ik mij indenken dat 128 MB opeens erg krap is. Als het een zelfgebouwde site is, dan kan je ook kijken of je het een en ander kan optimaliseren. Misschien heb je wel queries die in een loop draaien, en kan je er een JOIN van maken. Of heb je ellenlange array's die overbodig lang zijn.


Ik vraag me af of veel mensen tegenwoordig nog steeds zelfgebouwde sites gebruiken? Ik vraag me gewoon af, geen ruzie.
 
- Ariën  -
Beheerder

- Ariën -

01/02/2023 15:47:36
Quote Anchor link
Ja! Meer vrijheid, geen extra leercurve om een pakket te leren kennen.
 
Wicher Hoek

Wicher Hoek

01/02/2023 20:27:25
Quote Anchor link
Van Noord op 01/02/2023 15:24:16:
Ik vraag me af of veel mensen tegenwoordig nog steeds zelfgebouwde sites gebruiken? Ik vraag me gewoon af, geen ruzie.


Meer dan je denkt denk ik.
Het is een mooi tijdverdrijf als je noodgedwongen hele dagen thuis zit.
Enne, even goeie vrienden hoor.
 
Jan R

Jan R

02/02/2023 12:39:34
Quote Anchor link
Van Noord op 01/02/2023 15:24:16:
Ik vraag me af of veel mensen tegenwoordig nog steeds zelfgebouwde sites gebruiken? Ik vraag me gewoon af, geen ruzie.


Soms heb je geen keuze. Ik ben schaker. Vind maar eens een site waar je rechtstreeks de uitslagen kunt invullen en de stand berekenen.
Zelf maken is dan de oplossing :)

Jan
 
- Ariën  -
Beheerder

- Ariën -

02/02/2023 12:57:31
Quote Anchor link
Er zijn vaak zat plug-ins te vinden om te bereiken wat je wilt. Maar dan moet je vaak wel weer genoegen nemen met wat je hebt en wat de toevoeging kan. En anders kan je ook zelf een add-on bouwen, maar ja.. dan moet je weer weten hoe die gebouwd moet worden.

Maar goed, ik denk dat dit een discussie is die wel in een ander topic mag worden gestart.
Gewijzigd op 02/02/2023 13:00:22 door - Ariën -
 
Ozzie PHP

Ozzie PHP

02/02/2023 15:11:27
Quote Anchor link
>> Ik vraag me af of veel mensen tegenwoordig nog steeds zelfgebouwde sites gebruiken?

Iedere site is zelfgebouwd. Een site bouwt zichzelf niet.

Laatst las ik ergens een opmerking van iemand die zoiets zei als "vroeger toen websites nog met html en php gemaakt werden". Dat is dus iemand die denkt er verstand van te hebben, maar geen flauw benul heeft waar ie over praat.
 



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.