Java源码示例:com.artifex.mupdf.fitz.Cookie
示例1
public synchronized void drawPage(Bitmap bm, int pageNum,
int pageW, int pageH,
int patchX, int patchY,
int patchW, int patchH,
Cookie cookie) {
gotoPage(pageNum);
if (displayList == null)
displayList = page.toDisplayList(false);
float zoom = resolution / 72;
Matrix ctm = new Matrix(zoom, zoom);
RectI bbox = new RectI(page.getBounds().transform(ctm));
float xscale = (float)pageW / (float)(bbox.x1 - bbox.x0);
float yscale = (float)pageH / (float)(bbox.y1 - bbox.y0);
ctm.scale(xscale, yscale);
AndroidDrawDevice dev = new AndroidDrawDevice(bm, patchX, patchY);
displayList.run(dev, ctm, cookie);
dev.destroy();
}
示例2
protected CancellableTaskDefinition<Void, Void> getDrawPageTask(final Bitmap bm, final int sizeX, final int sizeY,
final int patchX, final int patchY, final int patchWidth, final int patchHeight) {
return new MuPDFCancellableTaskDefinition<Void, Void>() {
@Override
public Void doInBackground(Cookie cookie, Void ... params) {
// Workaround bug in Android Honeycomb 3.x, where the bitmap generation count
// is not incremented when drawing.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB &&
Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH)
bm.eraseColor(0);
mCore.drawPage(bm, mPageNumber, sizeX, sizeY, patchX, patchY, patchWidth, patchHeight, cookie);
return null;
}
};
}
示例3
protected CancellableTaskDefinition<Void, Void> getDrawPageTask(final Bitmap bm, final int sizeX, final int sizeY,
final int patchX, final int patchY, final int patchWidth, final int patchHeight) {
return new MuPDFCancellableTaskDefinition<Void, Void>() {
@Override
public Void doInBackground(Cookie cookie, Void... params) {
// Workaround bug in Android Honeycomb 3.x, where the bitmap generation count
// is not incremented when drawing.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB &&
Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH)
bm.eraseColor(0);
mCore.drawPage(bm, mPageNumber, sizeX, sizeY, patchX, patchY, patchWidth, patchHeight, cookie);
return null;
}
};
}
示例4
public synchronized void drawPage(Bitmap bm, int pageNum, int pageW,
int pageH, int patchX, int patchY, int patchW, int patchH, Cookie cookie) {
gotoPage(pageNum);
if (displayList == null)
displayList = page.toDisplayList(false);
float zoom = resolution / 72;
Matrix ctm = new Matrix(zoom, zoom);
RectI bbox = new RectI(page.getBounds().transform(ctm));
float xscale = (float) pageW / (float) (bbox.x1 - bbox.x0);
float yscale = (float) pageH / (float) (bbox.y1 - bbox.y0);
ctm.scale(xscale, yscale);
AndroidDrawDevice dev = new AndroidDrawDevice(bm, patchX, patchY);
displayList.run(dev, ctm, cookie);
dev.destroy();
}
示例5
protected CancellableTaskDefinition<Void, Void> getDrawPageTask(final Bitmap bm, final int sizeX, final int sizeY,
final int patchX, final int patchY, final int patchWidth, final int patchHeight) {
return new MuPDFCancellableTaskDefinition<Void, Void>() {
@Override
public Void doInBackground(Cookie cookie, Void ... params) {
// Workaround bug in Android Honeycomb 3.x, where the bitmap generation count
// is not incremented when drawing.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB &&
Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH)
bm.eraseColor(0);
mCore.drawPage(bm, mPageNumber, sizeX, sizeY, patchX, patchY, patchWidth, patchHeight, cookie);
return null;
}
};
}
示例6
protected CancellableTaskDefinition<Void, Void> getUpdatePageTask(final Bitmap bm, final int sizeX, final int sizeY,
final int patchX, final int patchY, final int patchWidth, final int patchHeight)
{
return new MuPDFCancellableTaskDefinition<Void, Void>() {
@Override
public Void doInBackground(Cookie cookie, Void ... params) {
// Workaround bug in Android Honeycomb 3.x, where the bitmap generation count
// is not incremented when drawing.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB &&
Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH)
bm.eraseColor(0);
mCore.updatePage(bm, mPageNumber, sizeX, sizeY, patchX, patchY, patchWidth, patchHeight, cookie);
return null;
}
};
}
示例7
/**
* 渲染页面,传入一个Bitmap对象.使用硬件加速,虽然速度影响不大.
*
* @param bm 需要渲染的位图,配置为ARGB8888
* @param page 当前渲染页面页码
* @param pageW 页面的宽,由缩放级别计算得到的最后宽,由于这个宽诸页面的裁剪大小,如果不正确,得到的Tile页面是不正确的
* @param pageH 页面的宽,由缩放级别计算得到的最后宽,由于这个宽诸页面的裁剪大小,如果不正确,得到的Tile页面是不正确的
* @param patchX 裁剪的页面的左顶点
* @param patchY 裁剪的页面的上顶点
* @param patchW 页面的宽,具体渲染的页面实际大小.显示出来的大小.
* @param patchH 页面的高,具体渲染的页面实际大小.显示出来的大小.
*/
public synchronized void drawPage(Bitmap bm, int pageNum,
int pageW, int pageH,
int patchX, int patchY,
int patchW, int patchH,
Cookie cookie) {
gotoPage(pageNum);
if (displayList == null)
displayList = page.toDisplayList(false);
float zoom = resolution / 72;
Matrix ctm = new Matrix(zoom);
RectI bbox = new RectI(page.getBounds().transform(ctm));
float xscale = (float)pageW / (float)(bbox.x1-bbox.x0);
float yscale = (float)pageH / (float)(bbox.y1-bbox.y0);
ctm.scale(xscale, yscale);
AndroidDrawDevice dev = new AndroidDrawDevice(bm, patchX, patchY);
displayList.run(dev, ctm, cookie);
dev.destroy();
}
示例8
protected CancellableTaskDefinition<Void, Void> getDrawPageTask(final Bitmap bm, final int sizeX, final int sizeY,
final int patchX, final int patchY, final int patchWidth, final int patchHeight) {
return new MuPDFCancellableTaskDefinition<Void, Void>() {
@Override
public Void doInBackground(Cookie cookie, Void ... params) {
// Workaround bug in Android Honeycomb 3.x, where the bitmap generation count
// is not incremented when drawing.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB &&
Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH)
bm.eraseColor(0);
mCore.drawPage(bm, mPageNumber, sizeX, sizeY, patchX, patchY, patchWidth, patchHeight, cookie);
return null;
}
};
}
示例9
protected CancellableTaskDefinition<Void, Void> getUpdatePageTask(final Bitmap bm, final int sizeX, final int sizeY,
final int patchX, final int patchY, final int patchWidth, final int patchHeight)
{
return new MuPDFCancellableTaskDefinition<Void, Void>() {
@Override
public Void doInBackground(Cookie cookie, Void ... params) {
// Workaround bug in Android Honeycomb 3.x, where the bitmap generation count
// is not incremented when drawing.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB &&
Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH)
bm.eraseColor(0);
mCore.updatePage(bm, mPageNumber, sizeX, sizeY, patchX, patchY, patchWidth, patchHeight, cookie);
return null;
}
};
}
示例10
public synchronized void updatePage(Bitmap bm, int pageNum,
int pageW, int pageH,
int patchX, int patchY,
int patchW, int patchH,
Cookie cookie) {
drawPage(bm, pageNum, pageW, pageH, patchX, patchY, patchW, patchH, cookie);
}
示例11
protected CancellableTaskDefinition<Void, Void> getUpdatePageTask(final Bitmap bm, final int sizeX, final int sizeY,
final int patchX, final int patchY, final int patchWidth, final int patchHeight) {
return new MuPDFCancellableTaskDefinition<Void, Void>() {
@Override
public Void doInBackground(Cookie cookie, Void ... params) {
// Workaround bug in Android Honeycomb 3.x, where the bitmap generation count
// is not incremented when drawing.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB &&
Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH)
bm.eraseColor(0);
mCore.updatePage(bm, mPageNumber, sizeX, sizeY, patchX, patchY, patchWidth, patchHeight, cookie);
return null;
}
};
}
示例12
public synchronized void drawPage(Bitmap bm, int pageNum,
int pageW, int pageH,
int patchX, int patchY,
int patchW, int patchH,
Cookie cookie) {
// if bitmap is recycle,just return , because some async task will drawpage after bitmap
if (bm != null && bm.isRecycled()) {
return;
}
gotoPage(pageNum);
if (displayList == null)
displayList = page.toDisplayList(false);
float zoom = resolution / 72;
Matrix ctm = new Matrix(zoom, zoom);
RectI bbox = new RectI(page.getBounds().transform(ctm));
float xscale = (float) pageW / (float) (bbox.x1 - bbox.x0);
float yscale = (float) pageH / (float) (bbox.y1 - bbox.y0);
ctm.scale(xscale, yscale);
if (bm != null && bm.isRecycled()) {
return;
}
AndroidDrawDevice dev = new AndroidDrawDevice(bm, patchX, patchY);
displayList.run(dev, ctm, cookie);
dev.destroy();
}
示例13
public synchronized void updatePage(Bitmap bm, int pageNum,
int pageW, int pageH,
int patchX, int patchY,
int patchW, int patchH,
Cookie cookie) {
drawPage(bm, pageNum, pageW, pageH, patchX, patchY, patchW, patchH, cookie);
}
示例14
protected CancellableTaskDefinition<Void, Void> getUpdatePageTask(final Bitmap bm, final int sizeX, final int sizeY,
final int patchX, final int patchY, final int patchWidth, final int patchHeight) {
return new MuPDFCancellableTaskDefinition<Void, Void>() {
@Override
public Void doInBackground(Cookie cookie, Void... params) {
// Workaround bug in Android Honeycomb 3.x, where the bitmap generation count
// is not incremented when drawing.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB &&
Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH)
bm.eraseColor(0);
mCore.updatePage(bm, mPageNumber, sizeX, sizeY, patchX, patchY, patchWidth, patchHeight, cookie);
return null;
}
};
}
示例15
/**
* 解码
*
* @param width 一个页面的宽
* @param height 一个页面的高
* @param pageSliceBounds 每个页面的边框
* @param scale 缩放级别
* @return 位图
*/
public Bitmap renderBitmap(int width, int height, RectF pageSliceBounds, float scale) {
//Matrix matrix=new Matrix();
//matrix.postScale(width/getWidth(), -height/getHeight());
//matrix.postTranslate(0, height);
//matrix.postTranslate(-pageSliceBounds.left*width, -pageSliceBounds.top*height);
//matrix.postScale(1/pageSliceBounds.width(), 1/pageSliceBounds.height());
int pageW;
int pageH;
int patchX;
int patchY;
pageW = (int) (getWidth() * scale);
pageH = (int) (getHeight() * scale);
patchX = (int) (pageSliceBounds.left * pageW);
patchY = (int) (pageSliceBounds.top * pageH);
//Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Bitmap bitmap = BitmapPool.getInstance().acquire(width, height);
com.artifex.mupdf.fitz.Matrix ctm = new com.artifex.mupdf.fitz.Matrix(scale);
AndroidDrawDevice dev = new AndroidDrawDevice(bitmap, patchX, patchY, 0, 0, width, height);
page.run(dev, ctm, (Cookie) null);
dev.close();
dev.destroy();
return bitmap;
}
示例16
public synchronized void updatePage(Bitmap bm, int pageNum,
int pageW, int pageH,
int patchX, int patchY,
int patchW, int patchH,
Cookie cookie) {
drawPage(bm, pageNum, pageW, pageH, patchX, patchY, patchW, patchH, cookie);
}
示例17
@Override
protected Void doInBackground(RenderTaskParams... paramList)
{
params = paramList[0];
AndroidDrawDevice dev = new AndroidDrawDevice(params.bitmap, params.pageX0, params.pageY0, params.pageX1, params.pageY1, params.patchX0, params.patchY0, params.patchX1, params.patchY1);
try
{
Cookie cookie = new Cookie();
if (pageContents != null)
{
pageContents.run(dev, params.ctm, cookie);
}
if (annotContents != null && params.showAnnotations)
{
annotContents.run(dev, params.ctm, cookie);
}
}
catch (Exception e)
{
Log.e("mupdf", e.getMessage());
}
finally
{
dev.destroy();
}
return null;
}
示例18
public MuPDFCancellableTaskDefinition() {
this.cookie = new Cookie();
}
示例19
public MuPDFCancellableTaskDefinition() {
this.cookie = new Cookie();
}
示例20
public synchronized void updatePage(Bitmap bm, int pageNum, int pageW,
int pageH, int patchX, int patchY, int patchW, int patchH, Cookie cookie) {
drawPage(bm, pageNum, pageW, pageH, patchX, patchY, patchW, patchH, cookie);
}
示例21
public MuPDFCancellableTaskDefinition() {
this.cookie = new Cookie();
}
示例22
public MuPDFCancellableTaskDefinition()
{
this.cookie = new Cookie();
}
示例23
public abstract Result doInBackground(Cookie cookie, Params ... params);
示例24
public abstract Result doInBackground(Cookie cookie, Params... params);
示例25
public abstract Result doInBackground(Cookie cookie, Params... params);
示例26
public abstract Result doInBackground(Cookie cookie, Params ... params);