package com.bytezone.diskbrowser.applefile;

import java.awt.AlphaComposite;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.awt.image.DataBuffer;

public class PrintShopGraphic extends AbstractFile
{
  public PrintShopGraphic (String name, byte[] buffer)
  {
    super (name, buffer);

    image = new BufferedImage (88, 52, BufferedImage.TYPE_BYTE_GRAY);
    Graphics2D g2d = image.createGraphics ();
    g2d.setComposite (AlphaComposite.getInstance (AlphaComposite.SRC_OVER, (float) 1.0));
    DataBuffer dataBuffer = image.getRaster ().getDataBuffer ();
    int element = 0;

    for (int ptr = 0; ptr < 572; ptr++)
      for (int px = 7; px >= 0; px--)
      {
        int val = (buffer[ptr] >> px) & 0x01;
        dataBuffer.setElem (element++, val == 0 ? 255 : 0);
      }

    g2d.dispose ();
  }

  @Override
  public String getText ()
  {
    StringBuilder text = new StringBuilder ();

    text.append (String.format ("File Name      : %s%n", name));
    text.append (String.format ("File size      : %,d%n", buffer.length));

    return text.toString ();
  }
}