variables.modelMapping = arguments.modelMapping; //variables.jpegFile = arguments.jpegFile; variables.processedBufferedImage = false; return this; var jpegCodec = false; var fileInputStream = false; var decoder = false; //check to see if current jpg has already been buffered if(variables.processedBufferedImage neq variables.jpegFile) { variables.processedBufferedImage = variables.jpegFile; //Jpeg Codec jpegCodec = createObject("java", "com.sun.image.codec.jpeg.JPEGCodec"); //file open fileInputStream = createObject("java", "java.io.FileInputStream").init(variables.jpegFile); //decodes the JPEG decoder = jpegCodec.createJPEGDecoder(fileInputStream); //give us an image to scale variables.image = decoder.decodeAsBufferedImage(); }; var scaledImage = ""; var BufferedImage = ""; var imageHeight = getHeight(); var imageWidth = getWidth(); var sizeRatio = imageWidth/imageHeight; //figure out if the photo is portrait or landscape make the larger equal to the max thumb size given in agruments if (imageWidth gte imageHeight) { imageWidth = arguments.size; imageHeight = round(arguments.size/sizeRatio); } else { imageWidth = round(arguments.size * sizeRatio); imageHeight = arguments.size; }; //create a scaled image scaledImage = variables.image.getScaledInstance(JavaCast("int", imageWidth), JavaCast("int", imageHeight), image.SCALE_SMOOTH); //create a new BufferedImage BufferedImage = createObject("java", "java.awt.image.BufferedImage").init(JavaCast("int", imageWidth), JavaCast("int", imageHeight), image.TYPE_INT_RGB); //create output JPEG file writeOutputJPEG(arguments.writelocation,arguments.jpegQuality,scaledImage,BufferedImage); var scaledImage = ""; var BufferedImage = ""; var imageHeight = getHeight(); var imageWidth = getWidth(); var sizeRatio = imageWidth/imageHeight; //resize based on width imageWidth = arguments.width; imageHeight = round(arguments.width/sizeRatio); //create a scaled image scaledImage = variables.image.getScaledInstance(JavaCast("int", imageWidth), JavaCast("int", imageHeight), image.SCALE_SMOOTH); //create a new BufferedImage BufferedImage = createObject("java", "java.awt.image.BufferedImage").init(JavaCast("int", imageWidth), JavaCast("int", imageHeight), image.TYPE_INT_RGB); //create output JPEG file writeOutputJPEG(arguments.writelocation,arguments.jpegQuality,scaledImage,BufferedImage); var graphics = false; var encoder = false; var param = false; var jpegOutputQuality = arguments.jpegQuality; var newBufferedImage = arguments.BufferedImage; //Jpeg Codec var jpegCodec = createObject("java", "com.sun.image.codec.jpeg.JPEGCodec"); //output for file var outputStream = createObject("java", "java.io.FileOutputStream").init(arguments.outputFileNameAndLocation); //turn jpeg quality from 1-100 range to 0-1 range and cast as float jpegOutputQuality = JavaCast("float",(jpegOutputQuality/100)); //draw the image into the buffered image graphics = newBufferedImage.createGraphics(); graphics.drawImage(arguments.scaledImage, 0, 0, Javacast("null", "")); //encode it encoder = jpegCodec.createJPEGEncoder(outputStream); //create quality param param = encoder.getDefaultJPEGEncodeParam(newBufferedImage); //assign JPG quality 0-1 param.setQuality(jpegOutputQuality,false); //set JPG quality encoder.setJPEGEncodeParam(param); //encode encoder.encode(newBufferedImage); //close output stream outputStream.close(); var javaLoader = ""; var JpegMetadataReader = ""; var JpegMetadata = ""; var JpegDirectories = ""; var currentDirectory = ""; var currentTag = ""; var tags = ""; var paths = ArrayNew(1); var jpegExif = structNew(); //create new EXIF object var Exif = newExif(); //read jpeg file var photoFile = createObject("java","java.io.File").init(arguments.jpegFile); //set the path paths[1] = expandPath("photoblogfiles\model\com\drew\metadata\exif\metadata-extractor-2.3.1.jar"); //create the loader javaLoader = createObject("component", "#variables.modelMapping#.model.com.compoundtheory.javaloader.JavaLoader").init(paths); //create the JpegMetadataReader instace JpegMetadataReader = javaLoader.create("com.drew.imaging.jpeg.JpegMetadataReader"); //Read jpg file JpegMetadata = JpegMetadataReader.readMetadata(photoFile); //get directory iterator JpegDirectories = jpegMetadata.getDirectoryIterator(); if (rotateDegrees neq 0 or flip neq false) { //only create imagecfc object if we need to imagecfc = createObject("component","#variables.modelMapping#.model.com.imagecfc.image"); //rotoate if needed if (rotateDegrees neq 0) { rotate = imagecfc.rotate(variables.image,"","",rotateDegrees); variables.image = rotate.img; } //flip if needed if (flip neq false) { if (flip eq "horizontal") { //flip horiz flipImage = imagecfc.flipHorizontal(variables.image,"",""); } else if (flip eq "vertical") { //flip vert flipImage = imagecfc.flipVertical(variables.image,"",""); }; variables.image = flipImage.img; } }