view ar/com/hjg/pngj/chunks/PngChunkTEXT.java @ 6:da7f11dcc6fd pngj

move
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 15 Apr 2016 10:36:51 +0200 (2016-04-15)
parents com/hjg/pngj/chunks/PngChunkTEXT.java@3f418d4451d6
children
line wrap: on
line source
package ar.com.hjg.pngj.chunks;

import ar.com.hjg.pngj.ImageInfo;
import ar.com.hjg.pngj.PngjException;

/**
 * tEXt chunk.
 * <p>
 * see http://www.w3.org/TR/PNG/#11tEXt
 */
public class PngChunkTEXT extends PngChunkTextVar {
  public final static String ID = ChunkHelper.tEXt;

  public PngChunkTEXT(ImageInfo info) {
    super(ID, info);
  }

  public PngChunkTEXT(ImageInfo info, String key, String val) {
    super(ID, info);
    setKeyVal(key, val);
  }

  @Override
  public ChunkRaw createRawChunk() {
    if (key == null || key.trim().length() == 0)
      throw new PngjException("Text chunk key must be non empty");
    byte[] b = ChunkHelper.toBytes(key + "\0" + val);
    ChunkRaw chunk = createEmptyChunk(b.length, false);
    chunk.data = b;
    return chunk;
  }

  @Override
  public void parseFromRaw(ChunkRaw c) {
    int i;
    for (i = 0; i < c.data.length; i++)
      if (c.data[i] == 0)
        break;
    key = ChunkHelper.toString(c.data, 0, i);
    i++;
    val = i < c.data.length ? ChunkHelper.toString(c.data, i, c.data.length - i) : "";
  }

}