java.awt.geom.AffineTransform.getScaleInstance()方法的使用及代码示例

x33g5p2x  于2022-01-15 转载在 其他  
字(10.9k)|赞(0)|评价(0)|浏览(160)

本文整理了Java中java.awt.geom.AffineTransform.getScaleInstance()方法的一些代码示例,展示了AffineTransform.getScaleInstance()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。AffineTransform.getScaleInstance()方法的具体详情如下:
包路径:java.awt.geom.AffineTransform
类名称:AffineTransform
方法名:getScaleInstance

AffineTransform.getScaleInstance介绍

暂无

代码示例

代码示例来源:origin: plantuml/plantuml

  1. public EmptyImageBuilder(int width, int height, Color background, double dpiFactor) {
  2. this(width * dpiFactor, height * dpiFactor, background);
  3. if (dpiFactor != 1.0) {
  4. g2d.setTransform(AffineTransform.getScaleInstance(dpiFactor, dpiFactor));
  5. }
  6. }

代码示例来源:origin: libgdx/libgdx

  1. /**
  2. * Draws the glyph to the given image, upscaled by a factor of {@link #scale}.
  3. *
  4. * @param image the image to draw to
  5. * @param glyph the glyph to draw
  6. */
  7. private void drawGlyph(BufferedImage image, Glyph glyph) {
  8. Graphics2D inputG = (Graphics2D) image.getGraphics();
  9. inputG.setTransform(AffineTransform.getScaleInstance(scale, scale));
  10. // We don't really want anti-aliasing (we'll discard it anyway),
  11. // but accurate positioning might improve the result slightly
  12. inputG.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);
  13. inputG.setColor(Color.WHITE);
  14. inputG.fill(glyph.getShape());
  15. }

代码示例来源:origin: libgdx/libgdx

  1. /**
  2. * Draws the glyph to the given image, upscaled by a factor of {@link #scale}.
  3. *
  4. * @param image the image to draw to
  5. * @param glyph the glyph to draw
  6. */
  7. private void drawGlyph(BufferedImage image, Glyph glyph) {
  8. Graphics2D inputG = (Graphics2D) image.getGraphics();
  9. inputG.setTransform(AffineTransform.getScaleInstance(scale, scale));
  10. // We don't really want anti-aliasing (we'll discard it anyway),
  11. // but accurate positioning might improve the result slightly
  12. inputG.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);
  13. inputG.setColor(Color.WHITE);
  14. inputG.fill(glyph.getShape());
  15. }

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

  1. private static BufferedImage verticalFlip(BufferedImage original) {
  2. AffineTransform tx = AffineTransform.getScaleInstance(1, -1);
  3. tx.translate(0, -original.getHeight());
  4. AffineTransformOp transformOp = new AffineTransformOp(tx, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
  5. BufferedImage awtImage = new BufferedImage(original.getWidth(), original.getHeight(), BufferedImage.TYPE_INT_BGR);
  6. Graphics2D g2d = awtImage.createGraphics();
  7. g2d.setRenderingHint(RenderingHints.KEY_RENDERING,
  8. RenderingHints.VALUE_RENDER_SPEED);
  9. g2d.drawImage(original, transformOp, 0, 0);
  10. g2d.dispose();
  11. return awtImage;
  12. }

代码示例来源:origin: ivan-vasilev/neuralnetworks

  1. @Override
  2. public void addAugmentedImages(List<BufferedImage> images)
  3. {
  4. for (int i = 0, l = images.size(); i < l; i++)
  5. {
  6. BufferedImage source = images.get(i);
  7. AffineTransform tx = AffineTransform.getScaleInstance(-1.0, 1.0);
  8. tx.translate(-source.getWidth(), 0);
  9. AffineTransformOp tr = new AffineTransformOp(tx, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
  10. images.add(tr.filter(source, null));
  11. }
  12. }

代码示例来源:origin: ivan-vasilev/neuralnetworks

  1. @Override
  2. public void addAugmentedImages(List<BufferedImage> images)
  3. {
  4. for (int i = 0, l = images.size(); i < l; i++)
  5. {
  6. BufferedImage source = images.get(i);
  7. AffineTransform tx = AffineTransform.getScaleInstance(1, -1);
  8. tx.translate(0, -source.getHeight(null));
  9. AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
  10. images.add(op.filter(source, null));
  11. }
  12. }

代码示例来源:origin: looly/hutool

  1. /**
  2. * 根据文字创建PNG图片
  3. *
  4. * @param str 文字
  5. * @param font 字体{@link Font}
  6. * @param backgroundColor 背景颜色
  7. * @param fontColor 字体颜色
  8. * @param out 图片输出地
  9. * @throws IORuntimeException IO异常
  10. */
  11. public static void createImage(String str, Font font, Color backgroundColor, Color fontColor, ImageOutputStream out) throws IORuntimeException {
  12. // 获取font的样式应用在str上的整个矩形
  13. Rectangle2D r = font.getStringBounds(str, new FontRenderContext(AffineTransform.getScaleInstance(1, 1), false, false));
  14. int unitHeight = (int) Math.floor(r.getHeight());// 获取单个字符的高度
  15. // 获取整个str用了font样式的宽度这里用四舍五入后+1保证宽度绝对能容纳这个字符串作为图片的宽度
  16. int width = (int) Math.round(r.getWidth()) + 1;
  17. int height = unitHeight + 3;// 把单个字符的高度+3保证高度绝对能容纳字符串作为图片的高度
  18. // 创建图片
  19. BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
  20. Graphics g = image.getGraphics();
  21. g.setColor(backgroundColor);
  22. g.fillRect(0, 0, width, height);// 先用背景色填充整张图片,也就是背景
  23. g.setColor(fontColor);
  24. g.setFont(font);// 设置画笔字体
  25. g.drawString(str, 0, font.getSize());// 画出字符串
  26. g.dispose();
  27. writePng(image, out);
  28. }

代码示例来源:origin: looly/hutool

  1. /**
  2. * 根据文字创建PNG图片
  3. *
  4. * @param str 文字
  5. * @param font 字体{@link Font}
  6. * @param backgroundColor 背景颜色
  7. * @param fontColor 字体颜色
  8. * @param out 图片输出地
  9. * @throws IORuntimeException IO异常
  10. */
  11. public static void createImage(String str, Font font, Color backgroundColor, Color fontColor, ImageOutputStream out) throws IORuntimeException {
  12. // 获取font的样式应用在str上的整个矩形
  13. Rectangle2D r = font.getStringBounds(str, new FontRenderContext(AffineTransform.getScaleInstance(1, 1), false, false));
  14. int unitHeight = (int) Math.floor(r.getHeight());// 获取单个字符的高度
  15. // 获取整个str用了font样式的宽度这里用四舍五入后+1保证宽度绝对能容纳这个字符串作为图片的宽度
  16. int width = (int) Math.round(r.getWidth()) + 1;
  17. int height = unitHeight + 3;// 把单个字符的高度+3保证高度绝对能容纳字符串作为图片的高度
  18. // 创建图片
  19. BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
  20. Graphics g = image.getGraphics();
  21. g.setColor(backgroundColor);
  22. g.fillRect(0, 0, width, height);// 先用背景色填充整张图片,也就是背景
  23. g.setColor(fontColor);
  24. g.setFont(font);// 设置画笔字体
  25. g.drawString(str, 0, font.getSize());// 画出字符串
  26. g.dispose();
  27. writePng(image, out);
  28. }

代码示例来源:origin: plantuml/plantuml

  1. private static AffineTransformation createSimple(String value) {
  2. Matcher m = rotate.matcher(StringUtils.trin(value));
  3. if (m.find()) {
  4. final double angle = Double.parseDouble(m.group(1));
  5. return new AffineTransformation(AffineTransform.getRotateInstance(angle * Math.PI / 180.0));
  6. }
  7. m = shear.matcher(value);
  8. if (m.find()) {
  9. final double shx = Double.parseDouble(m.group(1));
  10. final double shy = Double.parseDouble(m.group(2));
  11. return new AffineTransformation(AffineTransform.getShearInstance(shx, shy));
  12. }
  13. m = translate.matcher(value);
  14. if (m.find()) {
  15. final double tx = Double.parseDouble(m.group(1));
  16. final double ty = Double.parseDouble(m.group(2));
  17. return new AffineTransformation(AffineTransform.getTranslateInstance(tx, ty));
  18. }
  19. m = scale.matcher(value);
  20. if (m.find()) {
  21. final double scalex = Double.parseDouble(m.group(1));
  22. final double scaley = Double.parseDouble(m.group(2));
  23. return new AffineTransformation(AffineTransform.getScaleInstance(scalex, scaley));
  24. }
  25. m = color.matcher(value);
  26. if (m.find()) {
  27. return new AffineTransformation(new AffineTransform());
  28. }
  29. return null;
  30. }

代码示例来源:origin: igniterealtime/Openfire

  1. final AffineTransform scale = AffineTransform.getScaleInstance( (double) targetDimension / (double) targetWidth, (double) targetDimension / (double) targetHeight );
  2. final Graphics2D g = resizedAvatar.createGraphics();
  3. g.drawRenderedImage( avatar, scale );

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

  1. /**
  2. * Resizes the image to the given width and height.
  3. * @param source
  4. * the source image (this remains untouched, the new image instance is created)
  5. * @param width
  6. * the target image width
  7. * @param height
  8. * the target image height
  9. * @return the resized image
  10. */
  11. public static Image resizeTo(Image source, int width, int height) {
  12. BufferedImage sourceImage = ImageToAwt.convert(source, false, false, 0);
  13. double scaleX = width / (double) sourceImage.getWidth();
  14. double scaleY = height / (double) sourceImage.getHeight();
  15. AffineTransform scaleTransform = AffineTransform.getScaleInstance(scaleX, scaleY);
  16. AffineTransformOp bilinearScaleOp = new AffineTransformOp(scaleTransform, AffineTransformOp.TYPE_BILINEAR);
  17. BufferedImage scaledImage = bilinearScaleOp.filter(sourceImage, new BufferedImage(width, height, sourceImage.getType()));
  18. return ImageUtils.toJmeImage(scaledImage, source.getFormat());
  19. }

代码示例来源:origin: org.apache.poi/poi

  1. trans.concatenate(AffineTransform.getRotateInstance(style.getRotation()*2.0*Math.PI/360.0));
  2. trans.concatenate(
  3. AffineTransform.getScaleInstance(1, fontHeightMultiple)
  4. );
  5. bounds = layout.getOutline(trans).getBounds();

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

  1. AffineTransform trans = AffineTransform.getScaleInstance(1, -1);
  2. trans.translate(0, -img.getHeight(null));
  3. AffineTransformOp op = new AffineTransformOp(trans, AffineTransformOp.TYPE_BILINEAR);

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

  1. AffineTransform tx = AffineTransform.getScaleInstance(1, -1);
  2. tx.translate(0, -img.getHeight());
  3. transformOp = new AffineTransformOp(tx, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);

代码示例来源:origin: geotools/geotools

  1. /** Apply scaling parameter to the ROI to return the scaled version */
  2. private ROI computeScaledROI(double[] scalingParams) throws NoninvertibleTransformException {
  3. ROI newRoi = null;
  4. if (roi != null) {
  5. AffineTransform sTx =
  6. AffineTransform.getScaleInstance(scalingParams[0], scalingParams[1]);
  7. sTx.concatenate(
  8. AffineTransform.getTranslateInstance(scalingParams[2], scalingParams[3]));
  9. newRoi = roi.transform(sTx.createInverse());
  10. }
  11. return newRoi;
  12. }

代码示例来源:origin: vsch/flexmark-java

  1. public static BufferedImage scaleImage(BufferedImage sourceImage, int newWidth, int newHeight, int opType) {
  2. if (sourceImage == null) {
  3. return null;
  4. }
  5. if (newWidth == 0 || newHeight == 0) {
  6. return null;
  7. }
  8. AffineTransform at = AffineTransform.getScaleInstance(
  9. (double) newWidth / sourceImage.getWidth(null),
  10. (double) newHeight / sourceImage.getHeight(null)
  11. );
  12. // http://nickyguides.digital-digest.com/bilinear-vs-bicubic.htm
  13. AffineTransformOp op = new AffineTransformOp(at, opType != 0 ? opType : AffineTransformOp.TYPE_BILINEAR);
  14. return op.filter(sourceImage, null);
  15. }

代码示例来源:origin: apache/pdfbox

  1. public Rectangle2D getBounds()
  2. {
  3. Point2D size = new Point2D.Double(pageSize.getWidth(), pageSize.getHeight());
  4. // apply the underlying Graphics2D device's DPI transform and y-axis flip
  5. Matrix m = new Matrix(xform);
  6. AffineTransform dpiTransform = AffineTransform.getScaleInstance(Math.abs(m.getScalingFactorX()), Math.abs(m.getScalingFactorY()));
  7. size = dpiTransform.transform(size, size);
  8. // Flip y
  9. return new Rectangle2D.Double(minX - pageSize.getLowerLeftX() * Math.abs(m.getScalingFactorX()),
  10. size.getY() - minY - height + pageSize.getLowerLeftY() * Math.abs(m.getScalingFactorY()),
  11. width, height);
  12. }
  13. }

代码示例来源:origin: geotools/geotools

  1. @Test
  2. public void testBounds() {
  3. GeneralPath gp = new GeneralPath();
  4. gp.moveTo(0f, 0f);
  5. gp.lineTo(1, 0.3);
  6. gp.lineTo(0f, 0.6f);
  7. gp.closePath();
  8. AffineTransform at = AffineTransform.getScaleInstance(1.5, 1.5);
  9. TransformedShape ts = new TransformedShape(gp, at);
  10. assertEquals(new Rectangle(0, 0, 2, 1), ts.getBounds());
  11. }
  12. }

代码示例来源:origin: geotools/geotools

  1. public void testOGCScaleAffineProjected() throws Exception {
  2. // 1 pixel == 500 m => 0.00028 m [ screen] == 500 m [world]
  3. // => scaleDenominator = 500/0.00028
  4. final AffineTransform screenToWord = AffineTransform.getScaleInstance(500, 500);
  5. final AffineTransform worldToScreen = screenToWord.createInverse();
  6. final CoordinateReferenceSystem crs = DefaultEngineeringCRS.CARTESIAN_2D;
  7. double scale;
  8. scale = RendererUtilities.calculateOGCScaleAffine(crs, worldToScreen, new HashMap());
  9. assertEquals(500 / 0.00028, scale, 0.0001);
  10. worldToScreen.rotate(1.0);
  11. scale = RendererUtilities.calculateOGCScaleAffine(crs, worldToScreen, new HashMap());
  12. assertEquals(500 / 0.00028, scale, 0.0001);
  13. worldToScreen.translate(100.0, 100.0);
  14. scale = RendererUtilities.calculateOGCScaleAffine(crs, worldToScreen, new HashMap());
  15. assertEquals(500 / 0.00028, scale, 0.0001);
  16. }

代码示例来源:origin: geotools/geotools

  1. /**
  2. * Test the pass through transform using an affine transform. The "passthrough" of such
  3. * transform are optimized in a special way.
  4. */
  5. @Test
  6. public void testLinear() throws FactoryException, TransformException {
  7. runTest(
  8. mtFactory.createAffineTransform(
  9. new GeneralMatrix(AffineTransform.getScaleInstance(4, 2))));
  10. }

相关文章