Redimensionner une image

Soyez le premier à donner votre avis sur cette source.

Snippet vu 35 186 fois - Téléchargée 6 fois

Contenu du snippet

<cffunction name="bufferedResize" access="private" output="false" hint="Resize le buffer de l'image">  
<cfargument name="imgBuffer" required="true" hint="Java buffer image">  
<cfargument name="newWidth" type="numeric" required="false" default="100" hint="Nouvelle taille width (pixels). Defaut 100">  
<cfscript>  
// Regarde les dimensions originale  
var imhW = arguments.imgBuffer.getWidth();  
var imgH = arguments.imgBuffer.getHeight();  
// Calcule scale  
var scale = arguments.newWidth / imhW;  
// Défini la nouvelle dimension  
var scaledW = Int((scale * imhW));  
var scaledH = Int((scale * imgH));  
// Crée un nouvel objet image  
var outBufferedImg = createJavaImg(scaledW, scaledH);  
// Crée l'objet Graphics2D et défini les paramètres de dessin
jHints = createObject("java","java.awt.RenderingHints");
var jGraphics2D = arguments.imgBuffer.createGraphics();
jGraphics2D.setRenderingHint(jHints.KEY_INTERPOLATION, jHints.VALUE_INTERPOLATION_BILINEAR);
jGraphics2D.setRenderingHint(jHints.KEY_RENDERING, jHints.VALUE_RENDER_QUALITY);
jGraphics2D.setRenderingHint(jHints.KEY_COLOR_RENDERING, jHints.VALUE_COLOR_RENDER_QUALITY);  
jGraphics2D.setRenderingHint(jHints.KEY_DITHERING, jHints.VALUE_DITHER_ENABLE);
jGraphics2D.setRenderingHint(jHints.KEY_ANTIALIASING, jHints.VALUE_ANTIALIAS_OFF);var jGraphics2D = getJavaGraphics2D(outBufferedImg);
var scalingQuality = createObject("java","java.awt.Image").SCALE_SMOOTH;  
var scaledImg = arguments.imgBuffer.getScaledInstance(JavaCast("int", scaledW), JavaCast("int", scaledH), scalingQuality);   
</cfscript>  
<cftry>   
 <cfscript>   
 // Dessine l'image   
 jGraphics2D.drawImage(scaledImg, JavaCast("int", 0), JavaCast("int", 0), createJavaObserver());   
 jGraphics2D.dispose();   
 </cfscript>   
 <cfcatch type="any">    
  <cfthrow message="Redimensionnement de l'image a echoué #cfcatch.Message#" type="img">
 </cfcatch>  
</cftry>
<cfreturn outBufferedImg> 
</cffunction><cffunction name="resize" access="public" output="false" returntype="boolean" hint="Resize jpg ou png image">  
<cfargument name="source" type="string" required="true" hint="Path du fichier ou chemein absolu">  
<cfargument name="destination" type="string" required="true" hint="Path du fichier ou chemin absolu de destination">  
<cfargument name="newWidth" type="numeric" required="false" default="100" hint="Nouvelle taille width (pixels). Defaut 100">  
 <cfscript>  
 var jFileIn = createObject("java","java.io.File").init(arguments.source, true);  
 var jFileOut = createObject("java","java.io.File").init(arguments.destination);  
 // Converti l'object ficgier dans le buffer image  
 var imgBuffer = createObject("java","javax.imageio.ImageIO").read(jFileIn);  
 // Resize le buffer image  
 var thumb = bufferedResize(imgBuffer, arguments.newWidth);  
 
 </cfscript> 
 <!--- Ecrit le nouveau fichier image --->
 <cfset var fileSaved=true>
 <cftry>
 <cfset fileSaved=createObject("java","javax.imageio.ImageIO").write(thumb, "jpg", jFileOut)>
  <cfcatch type="any">
   <!--- La sauvegarde a echouée. return false --->
   <cfif variables.throwOnSave>
    <cfthrow message="Failed to save image" type="tmt_img">
   </cfif>
   <cfset fileSaved=false>
  </cfcatch>
 </cftry>
<cfreturn fileSaved>
</cffunction>
	
<cfif resize(fichier_source, fichier_destination, 80)>
	<p>l'image a été redimensionnée</p>


<cfelse>
	<p>Erreur</p>

</cfif>





Compatibilité : ColdFusion MX

Disponible dans d'autres langages :

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.