ImageIcon imageIcon = new ImageIcon("images\\4-4.png");
Image image = imageIcon.getImage();
Image newimg = image.getScaledInstance(60, 120, java.awt.Image.SCALE_SMOOTH);
imageIcon = new ImageIcon(newimg);
JLabel img = new JLabel(imageIcon);
img.setBounds(100, 100, 60, 120);
getContentPane().add(img);
旋转一个图像不是琐碎的,即使只是90度也需要一定的工作量。
所以,根据几乎所有其他关于旋转图像的问题,我会从这样的东西开始...
public BufferedImage rotate(BufferedImage image, Double degrees) {
// Calculate the new size of the image based on the angle of rotaion
double radians = Math.toRadians(degrees);
double sin = Math.abs(Math.sin(radians));
double cos = Math.abs(Math.cos(radians));
int newWidth = (int) Math.round(image.getWidth() * cos + image.getHeight() * sin);
int newHeight = (int) Math.round(image.getWidth() * sin + image.getHeight() * cos);
// Create a new image
BufferedImage rotate = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = rotate.createGraphics();
// Calculate the "anchor" point around which the image will be rotated
int x = (newWidth - image.getWidth()) / 2;
int y = (newHeight - image.getHeight()) / 2;
// Transform the origin point around the anchor point
AffineTransform at = new AffineTransform();
at.setToRotation(radians, x + (image.getWidth() / 2), y + (image.getHeight() / 2));
at.translate(x, y);
g2d.setTransform(at);
// Paint the originl image
g2d.drawImage(image, 0, 0, null);
g2d.dispose();
return rotate;
}
虽然你只旋转90度,但这需要计算新图像所需的大小,以便能够在任何角度绘制旋转的图像。
try {
BufferedImage original = ImageIO.read(getClass().getResource("domino.jpg"));
BufferedImage rotated90 = rotate(original, 90.0d);
BufferedImage rotatedMinus90 = rotate(original, -90.0d);
JPanel panel = new JPanel();
panel.add(new JLabel(new ImageIcon(original)));
panel.add(new JLabel(new ImageIcon(rotated90)));
panel.add(new JLabel(new ImageIcon(rotatedMinus90)));
JOptionPane.showMessageDialog(null, panel, null, JOptionPane.PLAIN_MESSAGE, null);
} catch (IOException ex) {
ex.printStackTrace();
}
问题内容: 我已经在中绘制了一些图形,例如圆形,矩形等。 但是我想绘制一些旋转了特定程度的图形,例如旋转的椭圆。我该怎么办? 问题答案: 如果您使用plain ,则强制转换为first: 旋转整个: 要重置旋转(因此您只旋转一件事): 例:
问题内容: 当用户单击按钮时,我正在旋转图像。但这是行不通的。 我想看到图像逐渐旋转90度直到停止,但没有旋转。单击该按钮时,图像必须逐渐旋转90度。 我创建了一个SSCCE来演示该问题。请使用您选择的任何图像替换班级中的图像。只需将图像放在文件夹中并命名。 它包含主要方法。 问题答案: 除了@tulskiy的有益观察之外,我还要补充两点: 始终在事件分发线程上构造GUI ,如下所示。 一个ssc
为子画面创建一个资产类,用于定义纹理,然后将子画面作为该纹理片,并带有该条的坐标。这是我试图旋转的精灵。我得到了使用Sprite Batch旋转它的建议(它旋转到我的触摸输入: 我收到错误: 类型SpriteBatch中的方法< code>draw(Texture,float,float,int,int,int,int)不适用于参数< code>(Sprite,int,int,int,int,in
问题内容: 我无法快速将图像旋转90度。我已经写了下面的代码,但是有一个错误并且无法编译 以下是我不确定的代码 问题答案: 这是针对 Swift 4.0 的扩展,可以仅旋转图像而无需。成功测试了图像已旋转,不仅更改了exif数据。 要执行180度旋转,您可以这样命名: 如果由于某种原因无法旋转,则将返回原始图像。
我需要将ImageIcon旋转到Java中的缓冲图像。我已经尝试了所有可能的方法,是否有任何方法,我已经尝试将ImageIcon转换为bufferedImage。 我尝试了所有可能的StackOverflow解决方案
在我的网站上,我有一个画廊,里面有我和我女朋友的一些照片,但是有两张照片是颠倒显示的。我不知道为什么。所有其他照片都是完美的。每张照片都是由同一个iPhone7拍摄的,但是前两张照片在网站上是颠倒的。在我的电脑上,它们显示得非常完美。 以下是网站:www.selinundleon。com/图库。有人能帮我解决这个问题吗?非常感谢你。