Subversion Repositories eFlore/Applications.cel

Rev

Rev 2939 | Rev 3057 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2939 Rev 3056
Line 650... Line 650...
650
			if ($im === false) {
650
			if ($im === false) {
651
				error_log("GD ne peut pas lire l'image créée par Imagick : [" . $chemin_image . "] vers [" . $out . "]");
651
				error_log("GD ne peut pas lire l'image créée par Imagick : [" . $chemin_image . "] vers [" . $out . "]");
652
				$erreur_ecriture = true;
652
				$erreur_ecriture = true;
653
			}
653
			}
654
		} catch (ImagickException $e) {
654
		} catch (ImagickException $e) {
-
 
655
		echo "/i";
655
			// En principe si on se trouve ici c'est que l'image est vide 
656
			// En principe si on se trouve ici c'est que l'image est vide 
656
			$erreur_ecriture = true;
657
			$erreur_ecriture = true;
657
			$image_sortie = false;
658
			$image_sortie = false;
658
		}
659
		}
Line 678... Line 679...
678
				// source AR wider than target
679
				// source AR wider than target
679
				// crop width to target AR
680
				// crop width to target AR
680
				$wcrop0 = round($ar*$hauteur_image_originale);
681
				$wcrop0 = round($ar*$hauteur_image_originale);
681
				$hcrop0 = $hauteur_image_originale;
682
				$hcrop0 = $hauteur_image_originale;
682
			} else {
683
			} else {
-
 
684
				// source AR wider than target
683
				// crop height to target AR
685
				// crop height to target AR
684
				$wcrop0 = $largeur_image_originale;
686
				$wcrop0 = $largeur_image_originale;
685
				$hcrop0 = round($largeur_image_originale/$ar);
687
				$hcrop0 = round($largeur_image_originale/$ar);
686
			}
688
			}
Line 735... Line 737...
735
				}
737
				}
736
			}
738
			}
Line 737... Line 739...
737
 
739
 
738
			// écrasement de l'image par la version "croppée"
740
			// écrasement de l'image par la version "croppée"
-
 
741
			$imgcp->cropImage($maxparam['w'], $maxparam['h'], $maxparam['x'], $maxparam['y']);
-
 
742
			// retailler correctement si au moins une des dimensions de l'image produite est
-
 
743
			// inférieure aux dimensions demandées
-
 
744
			$geo = $imgcp->getImageGeometry();
-
 
745
			$ratio_la = $geo['width'] / $largeur_vignette;
-
 
746
			$ratio_ha = $geo['height'] / $hauteur_vignette;
-
 
747
			if ($ratio_la < 1 || $ratio_ha < 1) {
-
 
748
				// cas kipu - on agrandit au max la dimension ayant le ratio le plus faible
-
 
749
				// (= le plus d'écart avec la taille attendue)
-
 
750
				if ($ratio_la < $ratio_ha) {
-
 
751
					$imgcp->scaleImage($largeur_vignette, 0);
-
 
752
				} else {
-
 
753
					$imgcp->scaleImage(0, $hauteur_vignette);
-
 
754
				}
-
 
755
				// puis on recoupe en centrant à l'arrache - bizarre que le script ne fasse pas ça de base :-/
-
 
756
				$geo = $imgcp->getImageGeometry();
-
 
757
				$imgcp->cropImage($largeur_vignette, $hauteur_vignette, max(0, floor($geo['width'] / 2 - $largeur_vignette / 2)), max(0, floor($geo['height'] / 2 - $hauteur_vignette / 2)));
-
 
758
			} else {
739
			$imgcp->cropImage($maxparam['w'], $maxparam['h'], $maxparam['x'], $maxparam['y']);
759
				// cas général
-
 
760
				$imgcp->scaleImage($largeur_vignette, $hauteur_vignette, false);
740
			$imgcp->scaleImage($largeur_vignette, $hauteur_vignette);
761
			}
Line 741... Line 762...
741
			$imgcp->writeImage($out);
762
			$imgcp->writeImage($out);
742
 
763
 
743
			// return image
764
			// return image