[gs-cvs] rev 8854 - trunk/gs/lib
alexcher at ghostscript.com
alexcher at ghostscript.com
Mon Jul 21 11:55:31 PDT 2008
Author: alexcher
Date: 2008-07-21 11:55:31 -0700 (Mon, 21 Jul 2008)
New Revision: 8854
Modified:
trunk/gs/lib/gs_img.ps
Log:
Wrap string data source into a procedure when /ImscaleDecode filter is
installed, to ensure repeated reading of the string when the imagemask
needs more data than has the string. Allocate new composite objects
with the same global status as old ones. Bug 689889, customer 330.
DIFFERENCES:
None
Modified: trunk/gs/lib/gs_img.ps
===================================================================
--- trunk/gs/lib/gs_img.ps 2008-07-18 20:53:54 UTC (rev 8853)
+++ trunk/gs/lib/gs_img.ps 2008-07-21 18:55:31 UTC (rev 8854)
@@ -707,15 +707,19 @@
2 index /Interpolate .knownget not { false } if and
//filterdict /ImscaleDecode known and {
% Apply interpolated imagemask scaling filter
- exch dup length dict .copydict
+ exch .currentglobal exch dup .gcheck .setglobal
+ dup length dict .copydict
dup dup /DataSource get
- mark /Width 3 index /Width get /Height 5 index /Height get .dicttomark
+ dup type /stringtype eq {
+ 1 array astore cvx % image.* operators read strings repeatesly
+ } if
+ mark /Width 3 index /Width get /Height 5 index /Height get .dicttomark
/ImscaleDecode filter /DataSource exch put
dup dup /Width get 4 mul /Width exch put
dup dup /Height get 4 mul /Height exch put
dup dup /ImageMatrix get
- 4 4 matrix scale matrix concatmatrix /ImageMatrix exch put
- exch
+ { 4 0 0 4 0 0 } matrix concatmatrix /ImageMatrix exch put
+ 3 1 roll .setglobal
} if
exec
}
More information about the gs-cvs
mailing list