Всем привет, с джавой не особо, имеется библиотека
Java, в нет бимс закинул всё пакуется и и компилируется, но не получается увидеть и посомтреть, т.к. нет главного класса, и не знаю что вызывать подскажите
Вроде вот основной контенер, вопрос только в топ как его вызвать, что бы запустить
PHP код:
package psd.model;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.*;
import psd.parser.*;
import psd.parser.header.*;
import psd.parser.imagedata.ImageDataSectionHandler;
import psd.parser.layer.*;
import psd.util.BufferedImageBuilder;
public class Psd implements LayersContainer {
private Header header;
private List<Layer> layers = new ArrayList<Layer>();
private BufferedImage image;
private String name;
public Psd(File psdFile) throws IOException {
name = psdFile.getName();
final byte[][] channels = new byte[3][];
PsdFileParser parser = new PsdFileParser();
parser.getHeaderSectionParser().setHandler(new HeaderSectionHandler() {
@Override
public void headerLoaded(Header header) {
Psd.this.header = header;
}
});
final List<Layer> fullLayersList = new ArrayList<Layer>();
parser.getLayersSectionParser().setHandler(new LayersSectionHandler() {
@Override
public void createLayer(LayerParser parser) {
fullLayersList.add(new Layer(parser));
}
});
parser.getImageDataSectionParser().setHandler(new ImageDataSectionHandler() {
@Override
public void channelLoaded(int channelId, byte[] channelData) {
if (channelId >= 0 && channelId < 3) {
channels[channelId] = channelData;
}
}
});
BufferedInputStream stream = new BufferedInputStream(new FileInputStream(psdFile));
parser.parse(stream);
stream.close();
layers = makeLayersHierarchy(fullLayersList);
if (parser.getHeaderSectionParser().getHeader().getColorMode() == ColorMode.GRAYSCALE) {
channels[1] = channels[2] = channels[0];
}
image = new BufferedImageBuilder(channels, header.getWidth(), header.getHeight()).makeImage();
}
private List<Layer> makeLayersHierarchy(List<Layer> layers) {
LinkedList<LinkedList<Layer>> layersStack = new LinkedList<LinkedList<Layer>>();
ArrayList<Layer> rootLayers = new ArrayList<Layer>();
for (Layer layer : layers) {
switch (layer.getType()) {
case HIDDEN: {
layersStack.addFirst(new LinkedList<Layer>());
break;
}
case FOLDER: {
assert !layersStack.isEmpty();
LinkedList<Layer> folderLayers = layersStack.removeFirst();
for (Layer l : folderLayers) {
layer.addLayer(l);
}
}
// break isn't needed
case NORMAL: {
if (layersStack.isEmpty()) {
rootLayers.add(layer);
} else {
layersStack.getFirst().add(layer);
}
break;
}
default:
assert false;
}
}
return rootLayers;
}
public int getWidth() {
return header.getWidth();
}
public int getHeight() {
return header.getHeight();
}
public BufferedImage getImage() {
return image;
}
@Override
public Layer getLayer(int index) {
return layers.get(index);
}
@Override
public int indexOfLayer(Layer layer) {
return layers.indexOf(layer);
}
@Override
public int getLayersCount() {
return layers.size();
}
@Override
public String toString() {
return name;
}
}