<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>
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.