comparison servlet/src/digilib/servlet/Scaler.java @ 352:5ded9e06cd57

Servlet version 1.5.9b - added mo=png option to enforce PNG output - set higher JPEG quality for mo=q2 (only ImageLoaderDocuImage)
author robcast
date Wed, 14 Sep 2005 21:59:07 +0200
parents 269d1028dfb7
children 25095f85ba7c
comparison
equal deleted inserted replaced
351:269d1028dfb7 352:5ded9e06cd57
57 public class Scaler extends HttpServlet { 57 public class Scaler extends HttpServlet {
58 58
59 private static final long serialVersionUID = -325080527268912852L; 59 private static final long serialVersionUID = -325080527268912852L;
60 60
61 /** digilib servlet version (for all components) */ 61 /** digilib servlet version (for all components) */
62 public static final String dlVersion = "1.5.8b"; 62 public static final String dlVersion = "1.5.9b";
63 63
64 /** logger for accounting requests */ 64 /** logger for accounting requests */
65 private static Logger accountlog = Logger.getLogger("account.request"); 65 private static Logger accountlog = Logger.getLogger("account.request");
66 66
67 /** gengeral logger for this class */ 67 /** gengeral logger for this class */
229 boolean sendFile = false; 229 boolean sendFile = false;
230 // use low resolution images only 230 // use low resolution images only
231 boolean loresOnly = false; 231 boolean loresOnly = false;
232 // use hires images only 232 // use hires images only
233 boolean hiresOnly = false; 233 boolean hiresOnly = false;
234 // send the image always as JPEG 234 // send the image always as a specific type (e.g. JPEG or PNG)
235 boolean forceJPEG = false; 235 int forceType = ImageOps.TYPE_AUTO;
236 // interpolation to use for scaling 236 // interpolation to use for scaling
237 int scaleQual = defaultQuality; 237 int scaleQual = defaultQuality;
238 // send html error message (or image file) 238 // send html error message (or image file)
239 boolean errorMsgHtml = false; 239 boolean errorMsgHtml = false;
240 // mirror the image 240 // mirror the image
341 } else if (dlRequest.hasOption("mo", "q2")) { 341 } else if (dlRequest.hasOption("mo", "q2")) {
342 scaleQual = 2; 342 scaleQual = 2;
343 } 343 }
344 // operation mode: "jpg": always use JPEG 344 // operation mode: "jpg": always use JPEG
345 if (dlRequest.hasOption("mo", "jpg")) { 345 if (dlRequest.hasOption("mo", "jpg")) {
346 forceJPEG = true; 346 forceType = ImageOps.TYPE_JPEG;
347 }
348 // operation mode: "png": always use PNG
349 if (dlRequest.hasOption("mo", "png")) {
350 forceType = ImageOps.TYPE_PNG;
347 } 351 }
348 352
349 // check with the maximum allowed size (if set) 353 // check with the maximum allowed size (if set)
350 int maxImgSize = dlConfig.getAsInt("max-image-size"); 354 int maxImgSize = dlConfig.getAsInt("max-image-size");
351 if (maxImgSize > 0) { 355 if (maxImgSize > 0) {
634 638
635 DigilibWorker job = new DigilibImageWorker(dlConfig, response, 639 DigilibWorker job = new DigilibImageWorker(dlConfig, response,
636 mimeType, scaleQual, dlRequest, paramROT, paramCONT, 640 mimeType, scaleQual, dlRequest, paramROT, paramCONT,
637 paramBRGT, paramRGBM, paramRGBA, fileToLoad, scaleXY, 641 paramBRGT, paramRGBM, paramRGBA, fileToLoad, scaleXY,
638 outerUserImgArea, innerUserImgArea, minSubsample, 642 outerUserImgArea, innerUserImgArea, minSubsample,
639 wholeRotArea, forceJPEG); 643 wholeRotArea, forceType);
640 644
641 job.run(); 645 job.run();
642 if (job.hasError()) { 646 if (job.hasError()) {
643 throw new ImageOpException(job.getError().toString()); 647 throw new ImageOpException(job.getError().toString());
644 } 648 }