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");
|