Mercurial > hg > digilib-old
comparison servlet/src/digilib/servlet/Scaler.java @ 161:ace2a4a0ba74
servlet version 1.16a4
- rather experimental
- new Texter servlet for sending text
- reads and caches text files in DocuDirCache
- DocuFile renamed to ImageFile (-Set)
- new TextFile
author | robcast |
---|---|
date | Tue, 16 Sep 2003 18:32:28 +0200 |
parents | 688ad0b8b0fa |
children | d40922628e4a |
comparison
equal
deleted
inserted
replaced
160:aecb57fb8f96 | 161:ace2a4a0ba74 |
---|---|
41 import digilib.image.DocuInfo; | 41 import digilib.image.DocuInfo; |
42 import digilib.image.ImageLoaderImageInfoDocuInfo; | 42 import digilib.image.ImageLoaderImageInfoDocuInfo; |
43 import digilib.image.ImageOpException; | 43 import digilib.image.ImageOpException; |
44 import digilib.image.ImageSize; | 44 import digilib.image.ImageSize; |
45 import digilib.io.DocuDirCache; | 45 import digilib.io.DocuDirCache; |
46 import digilib.io.DocuFile; | 46 import digilib.io.ImageFile; |
47 import digilib.io.DocuFileset; | 47 import digilib.io.ImageFileset; |
48 import digilib.io.FileOpException; | 48 import digilib.io.FileOpException; |
49 import digilib.io.FileOps; | 49 import digilib.io.FileOps; |
50 | 50 |
51 //import tilecachetool.*; | 51 //import tilecachetool.*; |
52 | 52 |
56 */ | 56 */ |
57 //public class Scaler extends HttpServlet implements SingleThreadModel { | 57 //public class Scaler extends HttpServlet implements SingleThreadModel { |
58 public class Scaler extends HttpServlet { | 58 public class Scaler extends HttpServlet { |
59 | 59 |
60 // digilib servlet version (for all components) | 60 // digilib servlet version (for all components) |
61 public static final String dlVersion = "1.16a2"; | 61 public static final String dlVersion = "1.16a4"; |
62 | 62 |
63 // Utils instance with debuglevel | 63 // Utils instance with debuglevel |
64 Utils util; | 64 Utils util; |
65 // FileOps instance | 65 // FileOps instance |
66 FileOps fileOp; | 66 FileOps fileOp; |
68 AuthOps authOp; | 68 AuthOps authOp; |
69 // ServletOps instance | 69 // ServletOps instance |
70 ServletOps servletOp; | 70 ServletOps servletOp; |
71 // DocuDirCache instance | 71 // DocuDirCache instance |
72 DocuDirCache dirCache; | 72 DocuDirCache dirCache; |
73 | 73 |
74 // deny image file | 74 // deny image file |
75 File denyImgFile; | 75 File denyImgFile; |
76 // error image file | 76 // error image file |
77 File errorImgFile; | 77 File errorImgFile; |
78 // subsampling before scaling | 78 // subsampling before scaling |
318 } | 318 } |
319 | 319 |
320 //"big" try for all file/image actions | 320 //"big" try for all file/image actions |
321 try { | 321 try { |
322 | 322 |
323 // DocuFileset of the image to load | 323 // ImageFileset of the image to load |
324 DocuFileset fileset = null; | 324 ImageFileset fileset = null; |
325 | 325 |
326 // new DocuInfo instance | 326 // new DocuInfo instance |
327 DocuInfo docuInfo = new ImageLoaderImageInfoDocuInfo(); | 327 DocuInfo docuInfo = new ImageLoaderImageInfoDocuInfo(); |
328 | 328 |
329 /* | 329 /* |
357 } | 357 } |
358 } | 358 } |
359 } | 359 } |
360 | 360 |
361 // find the file(set) | 361 // find the file(set) |
362 DocuFile fileToLoad; | 362 ImageFile fileToLoad; |
363 fileset = dirCache.getFileset(loadPathName, dlRequest.getPn()); | 363 fileset = |
364 (ImageFileset) dirCache.getFile( | |
365 loadPathName, | |
366 dlRequest.getPn(), | |
367 FileOps.CLASS_IMAGE); | |
364 if (fileset == null) { | 368 if (fileset == null) { |
365 throw new FileOpException( | 369 throw new FileOpException( |
366 "File " | 370 "File " |
367 + loadPathName | 371 + loadPathName |
368 + "(" | 372 + "(" |
640 double subsamp = 1d; | 644 double subsamp = 1d; |
641 if (scaleXY < 1) { | 645 if (scaleXY < 1) { |
642 subf = 1 / scaleXY; | 646 subf = 1 / scaleXY; |
643 // for higher quality reduce subsample factor by minSubsample | 647 // for higher quality reduce subsample factor by minSubsample |
644 if (scaleQual > 0) { | 648 if (scaleQual > 0) { |
645 subsamp = | 649 subsamp = Math.max(Math.floor(subf / minSubsample), 1d); |
646 Math.max( | |
647 Math.floor(subf / minSubsample), | |
648 1d); | |
649 } else { | 650 } else { |
650 subsamp = Math.floor(subf); | 651 subsamp = Math.floor(subf); |
651 } | 652 } |
652 scaleXY = subsamp / subf; | 653 scaleXY = subsamp / subf; |
653 System.out.println( | 654 System.out.println( |