请看以下条件
1. mysql数据库中存放的是blob类型的二进制字段
2. 实体类中对应的是byte[]类型的属性
3. 使用的struts2 + spring + hiberante
4. 如果不考虑缩放,讲原始图片直接存入数据库二进制字段,一切都已经成功
实现缩略图的方法我在网上也找过,但都是那种把图片处理后直接ImageIO.write()的,
我想要的是处理图片后转换成File或者byte[],继续写入数据库。
请高`手指点,没看懂题意和凑数的朋友请远离,以免口水!
请看以下条件
1. mysql数据库中存放的是blob类型的二进制字段
2. 实体类中对应的是byte[]类型的属性
3. 使用的struts2 + spring + hiberante
4. 如果不考虑缩放,讲原始图片直接存入数据库二进制字段,一切都已经成功
实现缩略图的方法我在网上也找过,但都是那种把图片处理后直接ImageIO.write()的,
我想要的是处理图片后转换成File或者byte[],继续写入数据库。
请高`手指点,没看懂题意和凑数的朋友请远离,以免口水!
[code="java"]
@Test
public void test() throws Exception {
File imageFile = new File("test.jpg");
BufferedImage src = ImageIO.read(imageFile);
int width = src.getWidth()/2;
int height = src.getHeight()/2;
Image image = src.getScaledInstance(width, height, Image.SCALE_DEFAULT);
BufferedImage desc = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); //缩放图像
Graphics g = desc.getGraphics();
g.drawImage(image, 0, 0, null); // 绘制缩小后的图
g.dispose();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ImageIO.write(desc, "JPEG", bos);
FileOutputStream out = new FileOutputStream("result.jpg");
//bos.toByteArray() 你想要的数组
out.write(bos.toByteArray());
out.close();
}
[/code]