-
Bug
-
Resolution: Fixed
-
P3
-
1.2.0
-
1.2beta2
-
x86
-
windows_nt
-
Not verified
Name: ggC50526 Date: 11/05/97
Using NT on a P200 with 64 megs of ram:
The following code will SOMETIMES throw an out of memory exception..have not
been able to find a
common denominator..sometimes the same code works, sometimes it does not.
BufferedImage bi=new BufferedImage(100,100,BufferedImage.TYPE_INT_ARGB);
AffineTransform[] transforms;
String[]
transformStr={"IDENTITY","TRANSLATION","SCALE","ROTATION","SHEAR"};
void createTestTransforms() {
transforms=new AffineTransform[5];
transforms[0]=new AffineTransform();
transforms[1]=new AffineTransform();
transforms[1].setToTranslation(100f,100f);
transforms[2]=new AffineTransform();
transforms[2].setToScale(100f,100f);
transforms[3]=new AffineTransform();
transforms[3].setToRotation(Math.PI/2f);
transforms[4]=new AffineTransform();
double[][] matrix=new double[3][3];
transforms[4].getMatrix(matrix);
matrix[1][0]=5.0;
transforms[4]=new AffineTransform(matrix);
}
Graphics2D g=bi.createGraphics();
Image img=new BufferedImage(50,50,BufferedImage.TYPE_INT_ARGB);
createTestTransforms();
for ( int i=0;i<transforms.length ;i++ ) {
g.drawImage(img,transforms[i],null);
}
}
=====================================
###@###.### Nov.05/1997
Here is the test case from the email corespodence :
Aaron wrote:
Follow a test that throws OutOfMemoryExceptions on all machines I have
tried it on (All NT4.0 SP3...between 48 and 128 megs of ram)
// --------------------------------------------------------------
// imports ...
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.awt.geom.Rectangle2D;
import java.awt.image.BilinearAffineTransformOp;
import java.awt.geom.AffineTransform;
import java.awt.Shape;
import java.awt.Image;
import java.awt.font.StyledString;
import java.awt.Font;
import java.awt.font.GlyphSet;
import java.awt.font.TextLayout;
import java.awt.Color;
import java.awt.AlphaComposite;
import java.awt.GradientPaint;
import java.awt.Paint;
import java.awt.Paint;
import java.awt.TexturePaint;
import java.awt.Composite;
import java.awt.Stroke;
import java.awt.BasicStroke;
import java.awt.Rectangle;
public class DrawImageTest {
// --------------------------------------------------------------
// Variables
// --------------------------------------------------------------
AffineTransform[] transforms;
String[]
transformStr={"IDENTITY","TRANSLATION","SCALE","ROTATION","SHEAR"};
void createTestTransforms() {
transforms=new AffineTransform[5];
transforms[0]=new AffineTransform();
transforms[1]=new AffineTransform();
transforms[1].setToTranslation(100f,100f);
transforms[2]=new AffineTransform();
transforms[2].setToScale(100f,100f);
transforms[3]=new AffineTransform();
transforms[3].setToRotation(Math.PI/2f);
transforms[4]=new AffineTransform();
double[][] matrix=new double[3][3];
transforms[4].getMatrix(matrix);
matrix[1][0]=5.0;
transforms[4]=new AffineTransform(matrix);
}
public static void main (String args[]) {
DrawImageTest test = new DrawImageTest();
test.doTests();
}
public void doTests() {
String apiTested =
"Graphics2D.drawImage(BufferedImage,BufferedImageOp,int,int): ";
String msg = apiTested;
BufferedImage bi=new BufferedImage(100,100,BufferedImage.TYPE_INT_ARGB);
try {
Graphics2D g = bi.createGraphics();
Image img=new BufferedImage(50,50,BufferedImage.TYPE_INT_ARGB);
createTestTransforms();
for ( int i=0;i<transforms.length ;i++ ) {
g.drawImage(img,transforms[i],null);
}
} catch (Throwable ee) {
System.out.println("Throwable: " + ee);
}
// --------------------------------------------------------------
/** Test: Graphics2D.drawImage(Image,AffineTransform,ImageObserver).
*
*/
//-----------------------------------------------------------------
try {
Graphics2D g=bi.createGraphics();
BufferedImage img=new BufferedImage(50,50,BufferedImage.TYPE_INT_ARGB);
createTestTransforms();
for ( int i=0;i<transforms.length ;i++ ) {
g.drawImage(img,transforms[i],null);
}
} catch (Throwable ee) {
System.out.println("Throwable: " + ee);
}
}
}
(Review ID: 19537)
======================================================================