为了减轻后台服务器的压力,前台页面做了静态化,但是商品的价格是经常变化的,为此价格需要实时加载,将商品的价格生成图片,后台服务器添加和修改商品时生成。
后来查看了下京东,价格也是用图片做的。
以下是代码
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
/**
* Oct 22, 2011
*/
public class ImgUtil {
/**
* @param args
*/
public static void main(String[] args) {
String fileContent="¥ 1710.33";
String fileName="123_1.jpg";
String filePath="D:/"+fileName;
generateImg(fileContent,filePath,false);
}
public static void generateImg(String content,String filePath,boolean isSpecial){
try {
BufferedImage im=CreateImage(content,isSpecial);
File output=new File(filePath);
ImageIO.write(im, "JPEG", output);
} catch (Exception e) {
System.out.println("生成文件失败。");
e.printStackTrace();
return;
}
}
/**
*
* @param sCode
* @param isSpecial 是否市场价,市场价需要添加删除线
* @return
*/
public static BufferedImage CreateImage(String sCode,boolean isSpecial)
{
try{
//字符的字体
Font CodeFont =new Font("宋体",Font.BOLD,13);
if(isSpecial){
CodeFont =new Font("宋体",Font.PLAIN,14);
}
int iLength = sCode.length(); //得到图片需要输出文字的长度
int width=10*iLength, height=28; //图象宽度与高度
int CharWidth = (int)(width-18)/iLength; //字符距左边宽度
int CharHeight = 20; //字符距上边高度
// 在内存中创建图象
BufferedImage image = new BufferedImage(8*iLength,height,BufferedImage.TYPE_INT_RGB);
// 获取图形上下文
Graphics g = image.getGraphics();
// 设定背景色
//g.setColor(getRandColor(200,240));
g.fillRect(0, 0, width, height);
//设定字体
g.setFont(CodeFont);
if(isSpecial){//是否是市场价,市场价,添加删除线
g.setColor(Color.gray);
int x = 0;
int y = height/2;
int xl = width;
int yl = height/2;
g.drawLine(x,y,xl,yl);
}
for (int i=0;i<iLength;i++)
{
String rand = sCode.substring(i,i+1);
// 将内容显示到图象中
if(isSpecial){
g.setColor(new Color(119,119,119));
}else{
g.setColor(new Color(255,0,0));
}
g.drawString(rand,CharWidth*i+1,CharHeight);
}
// 图象生效
g.dispose();
return image;
}
catch(Exception e)
{
e.printStackTrace();
}
return null;
}
}
下面是一个打叉的程序,和以上程序差不多
package info.frady;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class ImgGen {
public static void main(String[] args) {
File fileDir=new File("D:/java/tomcat6/webapps/HQ/upload/autograph/");
try{
File files[]=fileDir.listFiles();
for(File file:files){
Image src = ImageIO.read(file);
int width = src.getWidth(null);
int height = src.getHeight(null);
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g = image.createGraphics();
g.drawImage(src, 0, 0, width, height, null);
g.setColor(Color.red);
g.drawLine(0,0,width,height);
g.drawLine(0,height,width,0);
g.dispose();
ImageIO.write(image, "JPEG", file);
}
}catch(Exception e){
System.out.println("此处只是个示例,你需要重新此error,要不然不如不写。");
}
}
}
分享到:
相关推荐
在本项目中,我们关注的是一个基于Java实现的图片生成工具,主要功能是动态生成二维码海报和汉字名字头像。这个工具对于需要快速创建个性化图片的开发者或设计师来说非常实用,尤其是在进行数字营销或者个人品牌推广...
它定义了文档的整体布局、样式、字体、颜色、图片等元素,可以快速生成一致风格的文档。 2. **段落替换**: - 在模版中,我们可以用特定的占位符(如`{{variable}}`)表示需要动态替换的文本。通过编程语言读取...
用户可以预设标签模板,包括尺寸、布局、字体样式等,然后将生成的条码图片拖放到模板上。软件通常支持连接各种打印机,包括普通的激光打印机和专业的条码标签打印机。用户还能设置打印数量、纸张定位等参数,确保每...
这些库使用简单,只需要提供需要编码的数据和一些可选参数(如尺寸、颜色等),即可生成一个二维码图片。例如,`qrcode-generator`库可以这样使用: ```javascript var qr = qrcode(0, 'L'); qr.addData('...
图片库系统是现代信息化时代不可或缺的重要组成部分,它不仅是一个用于存储和管理图片的工具,更是一个集增值服务、沟通交流、版权保护和商业交易于一体的综合性平台。本文将深入探讨该系统的设计理念、核心功能以及...
本文主要讲述如何利用Java编程语言中的Jsoup库和HttpClient工具包来获取和解析动态生成的数据,特别是那些通过JavaScript动态加载的数据。 ### Java爬虫基础 Java爬虫是指使用Java语言编写的一类程序,这些程序...
淘宝客单页生成器是一种工具,专为淘宝客(Taobao Affiliate)设计,用于快速、高效地...同时,随着技术的发展,这类工具可能会集成更多智能化和自动化功能,如AI智能推荐、自动优化等,以适应日益激烈的电商竞争环境。
在标签“图片生成 出货单”中,我们可以推断出该程序的核心功能是生成出货单的图片,可能包括商品列表、数量、价格等信息,并且这个过程是动态的,可以根据不同的订单数据自动生成相应的图片。 在压缩包内的文件...
使用预付交易会话标识,我们可以调用微信支付的二维码生成接口,将其转换为二维码图片。这个二维码可以显示在PC端网页上,用户通过微信扫码进行支付。为了提高用户体验,可以使用JavaScript动态生成二维码并显示在...
- **Zebra Imaging SDK**:虽然不是PHP原生库,但可以通过调用PHP的exec()函数来执行命令行工具,生成高质量的条形码图像。 - **TCPDF**:这是一款强大的PDF生成库,同时也支持生成条形码。通过集成TCPDF,可以在...
4. **随机数生成**:为了设定预设价格,C#的`Random`类被用来生成一个随机的价格,确保每次游戏开始时价格都会不同。这增加了游戏的可玩性。 5. **用户输入验证**:在处理玩家输入时,需要验证输入是否为有效的数字...
二维码和条形码是现代数据交换和识别的重要工具,广泛应用于零售、物流、仓储、电子支付等多个领域。本文将深入探讨这两种编码技术的原理、生成方法以及在Java环境中的实现。 **一、二维码与条形码简介** 1. **...
2. 商品管理:系统支持批量上传商品信息,包括商品图片、描述、价格等,便于商家高效地维护商品库。同时,它还具备库存跟踪、价格调整、促销活动设置等功能,确保商品信息的实时性和准确性。 3. 订单管理:网店快手...
每个产品项都有图片、名称、描述和价格。最后,footer部分显示了版权信息。 2.2 优化和调整生成的代码虽然ChatGPT可以生成基础的HTML结构,但生成的代码可能并不完美,需要根据实际需求进行优化。例如,样式表...
**随机报价生成器** 是一个基于Web技术的实用小工具,它能够自动生成各种随机的引语或报价,并在用户界面上展示出来。这个程序通常用于娱乐、学习或者作为网页设计示例。在这个项目中,主要运用了 **CSS** ...
"PDF文档生成器.rar"这个压缩包很可能包含了一个软件工具,该工具用于创建、编辑或转换为PDF格式的文档。在本文中,我们将深入探讨PDF文档生成器的相关知识点,包括其功能、使用场景以及如何操作。 1. **PDF文档...
4. **detail.asp**:商品详情页,展示商品图片、价格、库存、规格等信息,供用户详细了解商品并作出购买决策。 5. **Balance.asp**:可能与用户的账户余额相关,允许用户查看、充值、提现等操作。 6. **browse.asp...
4. Android中生成条形码和二维码的步骤:使用zxing包,首先需要添加依赖项“com.google.zxing:core:3.3.1”,然后创建一个工具类,使用MultiFormatWriter.encode()方法生成条形码或二维码,最后将生成的图像显示在...
总结来说,Zxing是一个强大的工具,它使得在Android应用中实现二维码和条形码的扫描、生成变得简单。开发者通过整合其他优秀界面设计,提高了应用的可用性和美观度。如果你在开发中需要用到这些功能,Zxing无疑是一...
【全诚商城生成HTML门户版】是一个专门针对电商领域的项目,其核心是将商城系统转化为HTML格式的门户页面,以提供用户友好的在线购物体验。这个项目的主要目标是创建一个高性能、高可用性且易于维护的Web平台,使得...