diff options
author | Carolyn MacLeod <carolyn> | 2002-04-08 19:49:57 +0000 |
---|---|---|
committer | Carolyn MacLeod <carolyn> | 2002-04-08 19:49:57 +0000 |
commit | c411a772f7d523907dedf47298ee783e421cde35 (patch) | |
tree | 18d72295a739c96e3d40c072d5414343dc04c3c7 /examples | |
parent | ab026b0c06f8776e3a2f705d1e6968df9d83816e (diff) | |
download | eclipse.platform.swt-c411a772f7d523907dedf47298ee783e421cde35.tar.gz eclipse.platform.swt-c411a772f7d523907dedf47298ee783e421cde35.tar.xz eclipse.platform.swt-c411a772f7d523907dedf47298ee783e421cde35.zip |
Fixed image printing for images with transparency.
(Allow the user to turn off transparency before printing).
Diffstat (limited to 'examples')
2 files changed, 24 insertions, 6 deletions
diff --git a/examples/org.eclipse.swt.examples/org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java b/examples/org.eclipse.swt.examples/org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java index ec2069d809..594663317a 100755 --- a/examples/org.eclipse.swt.examples/org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java +++ b/examples/org.eclipse.swt.examples/org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java @@ -1044,16 +1044,20 @@ public class ImageAnalyzer { if (printerData == null) return;
Printer printer = new Printer(printerData);
-
Point screenDPI = display.getDPI();
Point printerDPI = printer.getDPI();
int scaleFactor = printerDPI.x / screenDPI.x;
Rectangle trim = printer.computeTrim(0, 0, 0, 0);
if (printer.startJob(currentName)) {
- GC gc = new GC(printer);
if (printer.startPage()) {
+ GC gc = new GC(printer);
+ int transparentPixel = imageData.transparentPixel;
+ if (transparentPixel != -1 && !transparent) {
+ imageData.transparentPixel = -1;
+ }
+ Image printerImage = new Image(printer, imageData);
gc.drawImage(
- image,
+ printerImage,
0,
0,
imageData.width,
@@ -1062,6 +1066,11 @@ public class ImageAnalyzer { -trim.y,
scaleFactor * imageData.width,
scaleFactor * imageData.height);
+ if (transparentPixel != -1 && !transparent) {
+ imageData.transparentPixel = transparentPixel;
+ }
+ printerImage.dispose();
+ gc.dispose();
printer.endPage();
}
printer.endJob();
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java index ec2069d809..594663317a 100755 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java +++ b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/imageanalyzer/ImageAnalyzer.java @@ -1044,16 +1044,20 @@ public class ImageAnalyzer { if (printerData == null) return;
Printer printer = new Printer(printerData);
-
Point screenDPI = display.getDPI();
Point printerDPI = printer.getDPI();
int scaleFactor = printerDPI.x / screenDPI.x;
Rectangle trim = printer.computeTrim(0, 0, 0, 0);
if (printer.startJob(currentName)) {
- GC gc = new GC(printer);
if (printer.startPage()) {
+ GC gc = new GC(printer);
+ int transparentPixel = imageData.transparentPixel;
+ if (transparentPixel != -1 && !transparent) {
+ imageData.transparentPixel = -1;
+ }
+ Image printerImage = new Image(printer, imageData);
gc.drawImage(
- image,
+ printerImage,
0,
0,
imageData.width,
@@ -1062,6 +1066,11 @@ public class ImageAnalyzer { -trim.y,
scaleFactor * imageData.width,
scaleFactor * imageData.height);
+ if (transparentPixel != -1 && !transparent) {
+ imageData.transparentPixel = transparentPixel;
+ }
+ printerImage.dispose();
+ gc.dispose();
printer.endPage();
}
printer.endJob();
|