宽度:-1
持续时间:38毫秒
宽度:32
线程“main”java.lang.IllegalArgumentException:Width(-1)和height(-1)在java.awt.image.DirectColorModel.createCompatibleWritableRaster(未知源)在java.awt.image.BufferedImage.(未知源)在imagesizeProblem.createBufferedImage(未知源)在imagesizeProblem.createBufferedImage(imagesizeProblem.java:82)在imagesizeProblem.main(
编辑:MediaTracker的“iserrorany()”返回true。但我无法找出错误所在--而且,图像确实正确加载,因为它可以通过创建ImageIcon成功地在JToolBar中使用。(我已经尝试滥用ImageIcon的getIconWidth()或getImage()方法--它们没有带来任何改进。)
SSCCE:
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.net.URL;
public class ImageSizeProblem {
public static void main(final String[] args) {
final Image img = createImageFromResource("test.png");
System.out.println("IMAGE: " + img);
System.out.println("WIDTH: " + img.getWidth(null));
final long startTime = System.currentTimeMillis();
waitForImage(img);
final long duration = System.currentTimeMillis() - startTime;
System.out.println("\nDURATION: " + duration + " ms");
System.out.println("\nWIDTH: " + img.getWidth(null));
final BufferedImage buffImg = createBufferedImageFromImage(img, false);
System.out.println("\nBUFFEREDIMAGE: " + buffImg);
System.exit(0);
}
private static Image createImageFromResource(final String resourceFileName_dontForgetToAddItsFolderToClasspath) {
final Toolkit kit = Toolkit.getDefaultToolkit();
final URL url = ClassLoader.getSystemResource(resourceFileName_dontForgetToAddItsFolderToClasspath);
if (url != null) {
final Image img = kit.createImage(url);
if (img == null) {
System.err.println("Image resource could not be loaded.");
return null;
}
return img;
} else {
System.err.println("Image resource not found.");
return null;
}
}
private static boolean waitForImage(final Image img) {
final MediaTracker mediaTracker = new MediaTracker(new JPanel());
mediaTracker.addImage(img, 1);
try {
mediaTracker.waitForID(1);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
return !mediaTracker.isErrorAny();
}
// improved version of http://stackoverflow.com/a/13605411/3500521
private static BufferedImage createBufferedImageFromImage(final Image img, final boolean withTransparency) {
if (img instanceof BufferedImage) {
return (BufferedImage) img;
} else if (img == null) {
return null;
}
final int w = img.getWidth(null);
final int h = img.getWidth(null);
final BufferedImage bufferedImage;
if (withTransparency) {
bufferedImage = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
} else {
bufferedImage = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
}
final Graphics2D g = bufferedImage.createGraphics();
g.drawImage(img, 0, 0, null);
g.dispose();
return bufferedImage;
}
}
请注意,用于测试的图像是通过JToolbar中的新ImageIcon(image)在另一个应用程序中成功加载和使用的。从ImageIcon获取大小也会返回-1,也会从ImageIcon.getimage()返回的图像返回-1。
我正在获取功能的帖子的特色图像 之前它获取了正确的图像,但我在wordpress媒体设置中将媒体大小从300更改为400,并重新生成了所有图像。显示并生成大小为400的图像。但现在它继续获取300分辨率的图像,而不是400分辨率的图像。 如何修复此问题并使其获取400大小的图像?
我有一个尺寸为800x800的图像,其大小为170 kb。我想将此图像调整为600x600。调整大小后,我希望缩小图像大小。我该怎么做?
我想减少一个480 X 480位图图像大小到30 X 30像素大小,但保持整个高度和宽度完整。(我不想缩放或使用高度/宽度属性!) 让我用更简单的方式--我试图将位图图像中的像素从480 X 480减少到30 X 30,高度和宽度保持不变,并且在将图像转换为30 X 30后,我预计会有一些失真。 我做了缩放,但它减少了宽度和高度,如果我再次增加宽度和高度,它只是恢复正常的像素。谢谢!
我试图创建一个GUI如下图所示 然而,当我运行我的文件时,图像的大小仍然保持原来的大小 我怎样才能缩小图像的大小,这样我就可以在旁边添加文本了?
问题内容: 我正在使用Grails开发网络相册,并且用于图像处理,正在使用grails-image-tools插件。如果上传的图像太大(例如:大于600 * 840),我需要一种功能来调整图像的大小。在这种情况下,我需要将此图像调整为600 * 840)。最有效的方法是什么?非常感谢。 问题答案:
我有一个< code>JPanel到< code>JFrame中。我在< code>JPanel上加载了一张图片,但它只显示了图片的一部分:这是我所做的代码部分: 这就是它的样子: 完整的图片看起来像这样: 有没有办法将图片缩放到< code>JFrame的大小?预先感谢
我明白了,SyntaxError:await只在异步函数和顶级模块体中有效。但是,如果我删除了async,只打印值而不返回它,它就可以正常工作。那么我怎样才能从函数中得到返回值,并将其保存在变量中呢?
我只是最近迁移一些旧的博客文章从一个网站到另一个。图像也已导入。然而,现在我的大多数图像返回404错误。 图片目前正在链接到/wp content/uploads/2018/05/image_name-800x600.jpg。我的问题是800x600是已添加的自定义图像大小。我尝试为800x600添加主题支持,然后使用“强制重新生成缩略图”WordPress插件重新生成缩略图。这似乎没有解决任何问