src/share/classes/sun/print/PSPrinterJob.java

Print this page


   1 /*
   2  * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


 883     protected void drawImageBGR(byte[] bgrData,
 884                                    float destX, float destY,
 885                                    float destWidth, float destHeight,
 886                                    float srcX, float srcY,
 887                                    float srcWidth, float srcHeight,
 888                                    int srcBitMapWidth, int srcBitMapHeight) {
 889 
 890         /* We draw images at device resolution so we probably need
 891          * to change the current PostScript transform.
 892          */
 893         setTransform(new AffineTransform());
 894         prepDrawing();
 895 
 896         int intSrcWidth = (int) srcWidth;
 897         int intSrcHeight = (int) srcHeight;
 898 
 899         mPSStream.println(IMAGE_SAVE);
 900 
 901         /* Create a PS string big enough to hold a row of pixels.
 902          */
 903         int psBytesPerRow = 3 * (int) intSrcWidth;
 904         while (psBytesPerRow > MAX_PSSTR) {
 905             psBytesPerRow /= 2;
 906         }
 907 
 908         mPSStream.println(psBytesPerRow + IMAGE_STR);
 909 
 910         /* Scale and translate the unit image.
 911          */
 912         mPSStream.println("[" + destWidth + " 0 "
 913                           + "0 " + destHeight
 914                           + " " + destX + " " + destY
 915                           +"]concat");
 916 
 917         /* Color Image invocation.
 918          */
 919         mPSStream.println(intSrcWidth + " " + intSrcHeight + " " + 8 + "["
 920                           + intSrcWidth + " 0 "
 921                           + "0 " + intSrcHeight
 922                           + " 0 " + 0 + "]"
 923                           + "/imageSrc load false 3 colorimage");


   1 /*
   2  * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


 883     protected void drawImageBGR(byte[] bgrData,
 884                                    float destX, float destY,
 885                                    float destWidth, float destHeight,
 886                                    float srcX, float srcY,
 887                                    float srcWidth, float srcHeight,
 888                                    int srcBitMapWidth, int srcBitMapHeight) {
 889 
 890         /* We draw images at device resolution so we probably need
 891          * to change the current PostScript transform.
 892          */
 893         setTransform(new AffineTransform());
 894         prepDrawing();
 895 
 896         int intSrcWidth = (int) srcWidth;
 897         int intSrcHeight = (int) srcHeight;
 898 
 899         mPSStream.println(IMAGE_SAVE);
 900 
 901         /* Create a PS string big enough to hold a row of pixels.
 902          */
 903         int psBytesPerRow = 3 * intSrcWidth;
 904         while (psBytesPerRow > MAX_PSSTR) {
 905             psBytesPerRow /= 2;
 906         }
 907 
 908         mPSStream.println(psBytesPerRow + IMAGE_STR);
 909 
 910         /* Scale and translate the unit image.
 911          */
 912         mPSStream.println("[" + destWidth + " 0 "
 913                           + "0 " + destHeight
 914                           + " " + destX + " " + destY
 915                           +"]concat");
 916 
 917         /* Color Image invocation.
 918          */
 919         mPSStream.println(intSrcWidth + " " + intSrcHeight + " " + 8 + "["
 920                           + intSrcWidth + " 0 "
 921                           + "0 " + intSrcHeight
 922                           + " 0 " + 0 + "]"
 923                           + "/imageSrc load false 3 colorimage");