我在网上下载了一段用jfreechart生成柱状图的代码
代码执行完后,生成了product.jpg
我直接双击这张图片时,这张图片显示结果不是很正常,暗暗的,不清晰。然后我在jsp文件里,写了下面这段代码:
<img src="********product.jpg">  (*是一些路径,在这里我省略了)然后启动tomcat,但是这张图片老是显示不出来,只显示了一个叉叉我可以保证我写的路径是绝对正确的。为了验证我做了一下的测试:
我在放product.jpg图片的目录下放了一张我自己在下载的平常的jpg图片,叫1.jpg
此时我在jsp文件里写了
 <img src="********1.jpg"> 此时则可以正常的显示1.jpg我想问的是:
问题是不是一定出在代码上,除此之外还有其他的原因吗?
为什么自己下载的jpg可以显示,而用代码生成的jpg则显示不了,而且当我直接双击product.jpg(用代码生成的)时
也是可以显示的,只是有些暗暗的,不是很清晰而已,照理我在jsp文件里应该可以把它显示出来才是啊,请高手帮帮忙
一下是我生成图片的代码:public class TestJFreeChart
{
public static void main(String[] args) throws IOException
{
CategoryDataset dataset = getDataSet2();
JFreeChart chart = ChartFactory.createBarChart3D(
"水果产量图", // 图表标题
"水果", // 目录轴的显示标签
"产量", // 数值轴的显示标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
); FileOutputStream fos_jpg = null;
try
{
   fos_jpg = new FileOutputStream("F:\\product.jpg");    ChartUtilities.writeChartAsJPEG(fos_jpg,1.0f, chart, 800, 500, null);
}
finally
{
try
{
fos_jpg.close();
}
catch (Exception e)
{
}
}
} /**
 * 获取一个演示用的组合数据集对象
 * 
 * @return
 */
private static CategoryDataset getDataSet2()
{
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, "北京", "苹果");
dataset.addValue(100, "上海", "苹果");
dataset.addValue(100, "广州", "苹果");
dataset.addValue(200, "北京", "梨子");
dataset.addValue(200, "上海", "梨子");
dataset.addValue(200, "广州", "梨子");
dataset.addValue(300, "北京", "葡萄");
dataset.addValue(300, "上海", "葡萄");
dataset.addValue(300, "广州", "葡萄");
dataset.addValue(400, "北京", "香蕉");
dataset.addValue(400, "上海", "香蕉");
dataset.addValue(400, "广州", "香蕉");
dataset.addValue(500, "北京", "荔枝");
dataset.addValue(500, "上海", "荔枝");
dataset.addValue(500, "广州", "荔枝");
return dataset;
}
}

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【linsongbin1】截止到2008-06-22 17:46:14的历史汇总数据(不包括此帖):
    注册日期:2007-12-1
    上次登录:2008-6-22
    发帖数:15                 发帖分:410                
    结贴数:15                 结贴分:410                
    结贴率:100.00%        结分率:100.00%        
    敬礼!
      

  2.   

    http://www.blogjava.net/amigoxie/archive/2007/09/30/149765.html
      

  3.   

    问题终于解决了,我查看了jfreechart的文档,对于JFreeChart类型的对象来说,
    jpeg是一种弱的格式,必须该用png格式的。也就是说以png的格式把一个JFreeChart对象写到FileOutputStream中
    这样就可以正常的显示,而且图片也特别的清晰。终于搞定了。