Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 2939 Rev 3056
Line 637... Line 637...
637
			// compute center of edginess
637
			// compute center of edginess
638
			$img->edgeImage($r);
638
			$img->edgeImage($r);
639
			$img->modulateImage(100,0,100); // grayscale
639
			$img->modulateImage(100,0,100); // grayscale
640
			$img->blackThresholdImage("#0f0f0f");
640
			$img->blackThresholdImage("#0f0f0f");
641
			$retour_ecriture_img = $img->writeImage($out);
641
			$retour_ecriture_img = $img->writeImage($out);
642
	
642
 
643
			if ($retour_ecriture_img !== true) {
643
			if ($retour_ecriture_img !== true) {
644
				error_log("Erreur d'écriture Imagick : [" . $chemin_image . "] vers [" . $out . "]");
644
				error_log("Erreur d'écriture Imagick : [" . $chemin_image . "] vers [" . $out . "]");
645
				$erreur_ecriture = true;
645
				$erreur_ecriture = true;
646
			}
646
			}
647
			// use gd for random pixel access
647
			// use gd for random pixel access
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
Line 754... Line 775...
754
		// destruction fichier temporaire dans tous les cas
775
		// destruction fichier temporaire dans tous les cas
755
		unlink($out);
776
		unlink($out);
Line 756... Line 777...
756
 
777
 
757
		return $image_sortie;
778
		return $image_sortie;
758
	}
-
 
759
}
779
	}
-
 
780
}