Example usage for com.google.gwt.typedarrays.shared Uint8Array set

List of usage examples for com.google.gwt.typedarrays.shared Uint8Array set

Introduction

In this page you can find the example usage for com.google.gwt.typedarrays.shared Uint8Array set.

Prototype

void set(short[] array, int offset);

Source Link

Document

Set multiple elements in this view from an array, storing starting at the requested offset.

Usage

From source file:com.lizardtech.djvu.IWMap.java

License:Open Source License

/**
 * DOCUMENT ME!/*from   w ww  .  j  a  v a2 s. c o m*/
 *
 * @param index DOCUMENT ME!
 * @param img8 DOCUMENT ME!
 * @param rowsize DOCUMENT ME!
 * @param pixsep DOCUMENT ME!
 * @param fast DOCUMENT ME!
 */
void image(int index, final Uint8Array img8, int rowsize, int pixsep, boolean fast) {
    final Int16Array data16 = TypedArrays.createInt16Array(bw * bh);
    final Int16Array liftblock = TypedArrays.createInt16Array(1024);
    int pidx = 0;
    IWBlock[] block = blocks;
    int blockidx = 0;
    int ppidx = 0;

    for (int i = 0; i < bh; i += 32, pidx += (32 * bw)) {
        for (int j = 0; j < bw; j += 32) {
            block[blockidx].write_liftblock(liftblock, 0, 64);
            blockidx++;

            ppidx = pidx + j;

            for (int ii = 0, p1idx = 0; ii++ < 32; p1idx += 32, ppidx += bw) {
                Int16Array src = liftblock.subarray(p1idx, p1idx + 32);
                data16.set(src, ppidx);
            }
        }
    }

    if (fast) {
        backward(data16, 0, iw, ih, bw, 32, 2);
        pidx = 0;

        for (int i = 0; i < bh; i += 2, pidx += bw) {
            for (int jj = 0; jj < bw; jj += 2, pidx += 2) {
                short s = data16.get(pidx);
                data16.set(pidx + bw, s);
                data16.set(pidx + bw + 1, s);
                data16.set(pidx + 1, s);
            }
        }
    } else {
        backward(data16, 0, iw, ih, bw, 32, 1);
    }

    pidx = 0;

    for (int i = 0, rowidx = index; i++ < ih; rowidx += rowsize, pidx += bw) {
        for (int j = 0, pixidx = rowidx; j < iw; pixidx += pixsep) {
            int x = (data16.get(pidx + (j++)) + 32) >> 6;

            if (x < -128) {
                x = -128;
            } else if (x > 127) {
                x = 127;
            }

            img8.set(pixidx, x);
        }
    }
}

From source file:com.lizardtech.djvu.IWMap.java

License:Open Source License

/**
 * DOCUMENT ME!/*from   ww w  . j  av  a 2 s . c om*/
 *
 * @param subsample DOCUMENT ME!
 * @param rect DOCUMENT ME!
 * @param index DOCUMENT ME!
 * @param img8 DOCUMENT ME!
 * @param rowsize DOCUMENT ME!
 * @param pixsep DOCUMENT ME!
 * @param fast DOCUMENT ME!
 *
 * @throws IllegalArgumentException DOCUMENT ME!
 */
void image(int subsample, GRect rect, int index, final Uint8Array img8, int rowsize, int pixsep, boolean fast) {
    int nlevel = 0;

    while ((nlevel < 5) && ((32 >> nlevel) > subsample)) {
        nlevel++;
    }

    final int boxsize = 1 << nlevel;

    if (subsample != (32 >> nlevel)) {
        throw new IllegalArgumentException("(IWMap::image) Unsupported subsampling factor");
    }

    if (rect.isEmpty()) {
        throw new IllegalArgumentException("(IWMap::image) GRect is empty");
    }

    GRect irect = new GRect(0, 0, ((iw + subsample) - 1) / subsample, ((ih + subsample) - 1) / subsample);

    if ((rect.xmin < 0) || (rect.ymin < 0) || (rect.xmax > irect.xmax) || (rect.ymax > irect.ymax)) {
        throw new IllegalArgumentException("(IWMap::image) GRect is out of bounds: " + rect.xmin + ","
                + rect.ymin + "," + rect.xmax + "," + rect.ymax + "," + irect.xmax + "," + irect.ymax);
    }

    GRect[] needed = new GRect[8];
    GRect[] recomp = new GRect[8];

    for (int i = 0; i < 8;) {
        needed[i] = new GRect();
        recomp[i++] = new GRect();
    }

    int r = 1;
    needed[nlevel] = new GRect(rect);
    recomp[nlevel] = new GRect(rect);

    for (int i = nlevel - 1; i >= 0; i--) {
        needed[i] = recomp[i + 1];
        needed[i].inflate(3 * r, 3 * r);
        needed[i].intersect(needed[i], irect);
        r += r;
        recomp[i].xmin = ((needed[i].xmin + r) - 1) & ~(r - 1);
        recomp[i].xmax = needed[i].xmax & ~(r - 1);
        recomp[i].ymin = ((needed[i].ymin + r) - 1) & ~(r - 1);
        recomp[i].ymax = needed[i].ymax & ~(r - 1);
    }

    GRect work = new GRect();
    work.xmin = needed[0].xmin & ~(boxsize - 1);
    work.ymin = needed[0].ymin & ~(boxsize - 1);
    work.xmax = ((needed[0].xmax - 1) & ~(boxsize - 1)) + boxsize;
    work.ymax = ((needed[0].ymax - 1) & ~(boxsize - 1)) + boxsize;

    final int dataw = work.width();
    final Int16Array data = TypedArrays.createInt16Array(dataw * work.height());
    int blkw = bw >> 5;
    int lblock = ((work.ymin >> nlevel) * blkw) + (work.xmin >> nlevel);

    final Int16Array liftblock = TypedArrays.createInt16Array(1024);

    for (int by = work.ymin, ldata = 0; by < work.ymax; by += boxsize, ldata += (dataw << nlevel), lblock += blkw) {
        for (int bx = work.xmin, bidx = lblock, rdata = ldata; bx < work.xmax; bx += boxsize, bidx++, rdata += boxsize) {
            IWBlock block = blocks[bidx];
            int mlevel = nlevel;

            if ((nlevel > 2) && (((bx + 31) < needed[2].xmin) || (bx > needed[2].xmax)
                    || ((by + 31) < needed[2].ymin) || (by > needed[2].ymax))) {
                mlevel = 2;
            }

            final int bmax = ((1 << (mlevel + mlevel)) + 15) >> 4;
            final int ppinc = 1 << (nlevel - mlevel);
            final int ppmod1 = dataw << (nlevel - mlevel);
            final int ttmod0 = 32 >> mlevel;
            final int ttmod1 = ttmod0 << 5;
            block.write_liftblock(liftblock, 0, bmax);

            for (int ii = 0, tt = 0, pp = rdata; ii < boxsize; ii += ppinc, pp += ppmod1, tt += (ttmod1 - 32)) {
                for (int jj = 0; jj < boxsize; jj += ppinc, tt += ttmod0) {
                    data.set(pp + jj, liftblock.get(tt));
                }
            }
        }
    }

    r = boxsize;

    for (int i = 0; i < nlevel; i++) {
        GRect comp = needed[i];
        comp.xmin = comp.xmin & ~(r - 1);
        comp.ymin = comp.ymin & ~(r - 1);
        comp.translate(-work.xmin, -work.ymin);

        if (fast && (i >= 4)) {
            workaround(dataw, data, comp);

            break;
        }

        backward(data, (comp.ymin * dataw) + comp.xmin, comp.width(), comp.height(), dataw, r, r >> 1);
        r >>= 1;
    }

    GRect nrect = new GRect(rect);
    nrect.translate(-work.xmin, -work.ymin);

    for (int i = nrect.ymin, pidx = (nrect.ymin
            * dataw), ridx = index; i++ < nrect.ymax; ridx += rowsize, pidx += dataw) {
        for (int j = nrect.xmin, pixidx = ridx; j < nrect.xmax; j++, pixidx += pixsep) {
            int x = (data.get(pidx + j) + 32) >> 6;

            if (x < -128) {
                x = -128;
            } else if (x > 127) {
                x = 127;
            }

            img8.set(pixidx, x);
        }
    }
}

From source file:org.cruxframework.crux.core.client.utils.FileUtils.java

License:Apache License

/**
 * Create a new Blob from the dataURI string
 * @param dataURI/*w ww . j  a  va 2  s . co  m*/
 * @return
 */
public static Blob fromDataURI(String dataURI) {
    String[] strings = dataURI.split(",");

    String byteString = getByteString(strings[1], strings[0]);
    String mimeString = strings[0].split(":")[1].split(";")[0];

    int length = byteString.length();
    ArrayBuffer ab = ArrayBufferNative.create(length);
    Uint8Array ia = Uint8ArrayNative.create(ab);

    for (int i = 0; i < length; i++) {
        ia.set(i, StringUtils.charCodeAt(byteString, i));
    }

    return Blob.createIfSupported(ab, mimeString);
}

From source file:org.plugination.connect.html.HtmlWebSocket.java

License:Apache License

@Override
public void send(ByteBuffer data) {
    int limit = data.limit();
    ArrayBuffer buffer = TypedArrays.createArrayBuffer(limit);
    Uint8Array arrayBuffer = TypedArrays.createUint8Array(buffer);
    for (int i = 0; i < limit; i++) {
        arrayBuffer.set(i, data.get(i));
    }//from www  .  j ava2  s .c  o m
    ws.send(buffer);
}

From source file:org.uberfire.ext.editor.commons.client.file.exports.ImageFileExport.java

License:Apache License

/**
 * Creates a Blob instance for the raw image data-uri value.
 * @param data The image uri data.//from  w w  w. j  a v a  2  s  . co m
 * @param mimeType The media type for the generated blob.
 */
public static Blob dataImageAsBlob(final String data, final String mimeType) {
    final String byteString = Window.atob(data);
    final ArrayBuffer buffer = ArrayBufferNative.create(byteString.length());
    final Uint8Array ia = Uint8ArrayNative.create(buffer);
    for (int i = 0; i < byteString.length(); i++) {
        ia.set(i, byteString.charAt(i));
    }
    return new BlobImpl(new Object[] { ia }, BlobPropertyBag.create(mimeType));
}

From source file:thothbot.parallax.core.client.textures.DataTexture.java

License:Open Source License

public void generateDataTexture(Color color) {
    int size = width * height;
    Uint8Array data = TypedArrays.createUint8Array(3 * size);

    int r = (int) Math.floor(color.getR() * 255);
    int g = (int) Math.floor(color.getG() * 255);
    int b = (int) Math.floor(color.getB() * 255);

    for (int i = 0; i < size; i++) {
        data.set(i * 3, r);
        data.set(i * 3 + 1, g);/*  w  w w . j  a v a2 s .  c  o m*/
        data.set(i * 3 + 2, b);

    }

    setData(data);
    setFormat(PixelFormat.RGB);
    setNeedsUpdate(true);
}