diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2016-03-30 17:49:04 +0200 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2016-03-31 13:00:41 +0200 |
commit | d68576c3785572c1f5d41f83015b8fe6bbcbe9e8 (patch) | |
tree | 431a86edfac640864ba7f406611e8fe9929908cd /platform/java/example/PageCanvas.java | |
parent | 32cdb2246eeb9e8109a712ec2a5dd2938e30e9b6 (diff) | |
download | mupdf-d68576c3785572c1f5d41f83015b8fe6bbcbe9e8.tar.xz |
Reorganize java and android source.
platform/java and platform/android are reorganized:
platform/java
The new JNI Java classes, mupdf_native.{c,h}, Makefile and Makejar.
platform/java/example
The example desktop viewer classes.
platform/android/viewer
The original demo viewer.
ndk-build is used to build libmupdf_java.so,
making reference to mupdf_native.{c,h} in platform/java.
Diffstat (limited to 'platform/java/example/PageCanvas.java')
-rw-r--r-- | platform/java/example/PageCanvas.java | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/platform/java/example/PageCanvas.java b/platform/java/example/PageCanvas.java new file mode 100644 index 00000000..9de1abdb --- /dev/null +++ b/platform/java/example/PageCanvas.java @@ -0,0 +1,59 @@ +package example; + +import com.artifex.mupdf.fitz.*; +import java.awt.*; +import java.awt.image.*; + +public class PageCanvas extends java.awt.Canvas +{ + protected Page page; + protected BufferedImage image; + + public static BufferedImage imageFromPixmap(Pixmap pixmap) { + int w = pixmap.getWidth(); + int h = pixmap.getHeight(); + BufferedImage image = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB); + image.setRGB(0, 0, w, h, pixmap.getPixels(), 0, w); + return image; + } + + public static BufferedImage imageFromPageWithDevice(Page page, Matrix ctm) { + Rect bbox = page.getBounds(); + Pixmap pixmap = new Pixmap(ColorSpace.DeviceBGR, bbox); + pixmap.clear(255); + DrawDevice dev = new DrawDevice(pixmap); + page.run(dev, new Matrix()); + dev.destroy(); + BufferedImage image = imageFromPixmap(pixmap); + pixmap.destroy(); + return image; + } + + public static BufferedImage imageFromPage(Page page, Matrix ctm) { + Pixmap pixmap = page.toPixmap(ctm, ColorSpace.DeviceBGR); + BufferedImage image = imageFromPixmap(pixmap); + pixmap.destroy(); + return image; + } + + public PageCanvas(Page page_) { + this.page = page_; + image = imageFromPage(page, new Matrix()); + } + + public Dimension getPreferredSize() { + return new Dimension(image.getWidth(), image.getHeight()); + } + + public Dimension getMinimumSize() { + return getPreferredSize(); + } + + public Dimension getMaximumSize() { + return getPreferredSize(); + } + + public void paint(Graphics g) { + g.drawImage(image, 0, 0, null); + } +} |