created mirror
This commit is contained in:
commit
6764738d92
600 files changed
+87187
No files matched your search
@@ -0,0 +1,163 @@
|
||||
/*
|
||||
Pixels.java
|
||||
*
|
||||
* Copyright (c) 2000, Ted Nelson and Tuomas Lukka
|
||||
*
|
||||
* You may use and distribute under the terms of either the GNU Lesser
|
||||
* General Public License, either version 2 of the license or,
|
||||
* at your choice, any later version. Alternatively, you may use and
|
||||
* distribute under the terms of the XPL.
|
||||
*
|
||||
* See the LICENSE.lgpl and LICENSE.xpl files for the specific terms of
|
||||
* the licenses.
|
||||
*
|
||||
* This software is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the README
|
||||
* file for more details.
|
||||
*
|
||||
*/
|
||||
/*
|
||||
* Written by Tero Mäyränen
|
||||
*/
|
||||
|
||||
package org.gzigzag.module.multimedia;
|
||||
import java.awt.*;
|
||||
import java.awt.image.*;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* The purpose of this class is to be the type of return value
|
||||
* for MediaZOb's getPixels() method.
|
||||
*
|
||||
* @see MediaZOb
|
||||
*/
|
||||
|
||||
public class Pixels
|
||||
{
|
||||
public static final String rcsid = "$Id: Pixels.java,v 1.2 2001/03/05 08:44:14 deetsay Exp $";
|
||||
|
||||
private int width, height, x, y;
|
||||
private int allocatedSize;
|
||||
private int pixels[];
|
||||
|
||||
private int frame = 0;
|
||||
public int getFrame() { return frame; }
|
||||
public void setFrame(int f) { frame = f; }
|
||||
|
||||
public int getX() { return x; }
|
||||
public int getY() { return y; }
|
||||
public int getCenterX() { return x + (width >> 1); }
|
||||
public int getCenterY() { return y + (height >> 1); }
|
||||
|
||||
public void setX(int a) { x = a; }
|
||||
public void setY(int a) { y = a; }
|
||||
public void setCenterX(int a) { x = a - (width >> 1); }
|
||||
public void setCenterY(int a) { y = a - (height >> 1); }
|
||||
|
||||
public int getWidth() { return width; }
|
||||
public int getHeight() { return height; }
|
||||
|
||||
private void checkSize()
|
||||
{
|
||||
int newsize = width*height;
|
||||
if (newsize > allocatedSize)
|
||||
{
|
||||
pixels = null;
|
||||
allocatedSize = newsize;
|
||||
pixels = new int[allocatedSize];
|
||||
}
|
||||
}
|
||||
public void setSize(int a, int b)
|
||||
{
|
||||
width = a;
|
||||
height = b;
|
||||
checkSize();
|
||||
}
|
||||
public void setWidth(int a)
|
||||
{
|
||||
width = a;
|
||||
checkSize();
|
||||
}
|
||||
public void setHeight(int a)
|
||||
{
|
||||
height = a;
|
||||
checkSize();
|
||||
}
|
||||
public void setCenterWidth(int a)
|
||||
{
|
||||
x += ((width - a) >> 1);
|
||||
width = a;
|
||||
checkSize();
|
||||
}
|
||||
public void setCenterHeight(int a)
|
||||
{
|
||||
y += ((height - a) >> 1);
|
||||
height = a;
|
||||
checkSize();
|
||||
}
|
||||
|
||||
public int[] getPixels() { return pixels; }
|
||||
|
||||
/**
|
||||
* Thanks to this method there's no need to use MemoryImageSource
|
||||
* to get an Image from pixel data.
|
||||
*/
|
||||
public ImageProducer getSource()
|
||||
{
|
||||
return new ImageProducer()
|
||||
{
|
||||
private Vector imageConsumers = new Vector();
|
||||
|
||||
public void addConsumer(ImageConsumer ic)
|
||||
{
|
||||
if ((ic != null) && (!isConsumer(ic)))
|
||||
{
|
||||
imageConsumers.addElement(ic);
|
||||
}
|
||||
}
|
||||
public boolean isConsumer(ImageConsumer ic)
|
||||
{
|
||||
return imageConsumers.contains(ic);
|
||||
}
|
||||
public void removeConsumer(ImageConsumer ic)
|
||||
{
|
||||
imageConsumers.removeElement(ic);
|
||||
}
|
||||
public void requestTopDownLeftRightResend(ImageConsumer ic)
|
||||
{
|
||||
startProduction(ic);
|
||||
}
|
||||
public void startProduction(ImageConsumer ic)
|
||||
{
|
||||
addConsumer(ic);
|
||||
|
||||
int i = 0;
|
||||
ImageConsumer cons;
|
||||
try
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
cons = (ImageConsumer)imageConsumers.elementAt(i++);
|
||||
cons.setDimensions(getWidth(), getHeight());
|
||||
cons.setHints(ImageConsumer.TOPDOWNLEFTRIGHT
|
||||
| ImageConsumer.SINGLEFRAME | ImageConsumer.SINGLEPASS);
|
||||
cons.setPixels(0, 0, getWidth(), getHeight(), ColorModel.getRGBdefault(),
|
||||
getPixels(), 0, getWidth());
|
||||
cons.imageComplete(ImageConsumer.STATICIMAGEDONE);
|
||||
}
|
||||
}
|
||||
catch (Exception e) {}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public Pixels(int w, int h)
|
||||
{
|
||||
x = 0;
|
||||
y = 0;
|
||||
width = w;
|
||||
height = h;
|
||||
pixels = new int[width*height];
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user