- 浏览: 390151 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
消失-IT超市:
方便加一下你的QQ吗,我的QQ是252375879,有个问题请 ...
js调用ocx控件(读写IC卡) -
mszb00123:
很有用
Extjs之--图片上传器 -
shouhouhuakai:
好崇拜,不错
URLConnection的连接、超时、关闭用法总结 -
wujierd:
写得好详细,学习了
URLConnection的连接、超时、关闭用法总结 -
paruke:
请问这个能加上图片旋转功能么 我试了一下 发现寻找中心点是个问 ...
Extjs之--图片浏览器
1、总体描述
(1)图片压缩
(2)读取压缩后的图片文件,base64进行编码,拼接xml字符串
(3)使用http传输xml
(4)接收端解析xml,还原图片文件
2、图片压缩demo
import java.awt.Color; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.BufferedImage; import java.awt.image.ConvolveOp; import java.awt.image.Kernel; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; public class ImageCompress { public static void ImageScale(String path, String fileName, String toFileName) { try { Image image = javax.imageio.ImageIO.read(new File(path + fileName)); int imageWidth = image.getWidth(null); int imageHeight = image.getHeight(null); //计算缩放比例 float scale = getRatio(imageWidth, imageHeight, 130, 130); imageWidth = (int) (scale * imageWidth); imageHeight = (int) (scale * imageHeight); image = image.getScaledInstance(imageWidth, imageHeight,Image.SCALE_AREA_AVERAGING); // Make a BufferedImage from the Image. BufferedImage mBufferedImage = new BufferedImage(imageWidth,imageHeight, BufferedImage.TYPE_INT_RGB); //获取图形上下文 Graphics2D g2 = mBufferedImage.createGraphics(); //绘制图像到目标位置 g2.drawImage(image, 0, 0, imageWidth, imageHeight, Color.white, null); g2.dispose(); float[] kernelData2 = { -0.125f, -0.125f, -0.125f, -0.125f, 2,-0.125f, -0.125f, -0.125f, -0.125f }; Kernel kernel = new Kernel(3, 3, kernelData2); //使用卷积核的卷积是一种通过输入像素来计算输出像素的空间运算,方法是将核与输入像素邻域相乘。这种运算使得直接邻域可按核数学指定的方式影响输出像素 //ConvolveOp.EDGE_NO_OP将位于源图像边缘的像素复制为目标中相应的像素,不加修改。 //构造给定 Kernel、边缘条件和 RenderingHint 对象(可以为 null)的 ConvolveOp。 ConvolveOp cOp = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null); //对 BufferedImage 执行卷积运算。 mBufferedImage = cOp.filter(mBufferedImage, null); FileOutputStream out = new FileOutputStream(path + toFileName); //可以正常实现bmp转jpg、png转jpg、gif转jpg JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); encoder.encode(mBufferedImage); out.close(); } catch (FileNotFoundException fnf) { fnf.printStackTrace(); } catch (IOException ioe) { ioe.printStackTrace(); } } public static float getRatio(int width, int height, int maxWidth,int maxHeight) { float Ratio = 1.0f; float widthRatio; float heightRatio; widthRatio = (float) maxWidth / width; heightRatio = (float) maxHeight / height; if (widthRatio < 1.0 || heightRatio < 1.0) { Ratio = widthRatio <= heightRatio ? widthRatio : heightRatio; } return Ratio; } public static void main(String[] args) { ImageScale("", "SNV31539.JPG", "SNV31539_small.JPG"); } }
3、读取压缩后的图片文件,base64进行编码,拼接xml字符串
public static String bin2XmlString(File file) { byte[] data = null; FileInputStream input = null; String ret = null; int n; try { data = new byte[(int) file.length()]; input = new FileInputStream(file); n = input.read(data); input.close(); ret = new String(Base64.encodeBase64(data, true)); } catch (Exception e) { e.printStackTrace(); } return ret; }
4、接收端解析xml,还原图片文件
public static boolean xmlString2Bin(String base64String, File file) { byte[] data; FileOutputStream output = null; boolean ret = false; try { data = Base64.decodeBase64(base64String.getBytes()); output = new FileOutputStream(file); output.write(data); output.close(); ret = true; } catch (Exception e) { e.printStackTrace(); } return ret; }
发表评论
-
不负时光,继续学习
2017-04-11 17:04 6474月,一年当中最好的时节,和风煦日春意浓; ... -
生活依旧,做好自己
2017-02-04 16:51 428新年开工第二天,工作之余翻看了电脑上以前的文 ... -
2016年最后一天随笔
2016-12-30 14:48 5952016年马上就要过去了,回顾过去的一年感 ... -
excel中汉字转拼音全拼和简拼
2016-09-12 11:45 1623一、汉字转全拼 1.启动Excel 2003(其它版本请仿 ... -
年底总结3-工作中遇到的错误及解决方式
2015-02-16 11:28 1039在过去的一年工作中遇到的一些问题及解决方式,如下: -- ... -
数据库方面遇到的问题总结
2013-05-23 20:29 10131、mysql服务自动关闭处理方式 我的电脑 -> ... -
resin2.1.17报错:META-INF/c.tld:6 unknown element `xsi:schemaLocation' in `taglib'
2012-08-20 18:37 30741、问题描述 resin启动后,访问jsp页面 ... -
Extjs grid 合计
2012-05-31 14:28 19121、直接在客户端统计,动态的修改Grid 2、代码如下 ... -
mysql函数使用-字符串处理
2012-05-29 17:15 11841、按地区统计数据 select q.psn,t.na ... -
spring JdbcTemplate 批量插入
2012-05-27 09:13 20461、通过批量操作减少与数据库连接所消耗的资源。 2、J ... -
JDBC连接Sql server
2012-03-07 10:24 17071、采用微软提供的ms sql server jdbc dri ... -
java下将汉字转换为拼音
2012-01-15 18:06 12091、代码如下,不过有些汉字不支持,如:茜 import ... -
年底总结2-spring多线程任务调度
2012-01-01 13:55 54591、spring framework开发参考手册中第23掌& ... -
年底总结1-tomcat6使用中遇到的问题
2012-01-01 10:23 65741、tomcat6.0.18注册windows服务成功后,但是 ... -
VML应用-利用ECOTree绘制树形结构图
2011-10-29 17:57 63991、基本概念 VML的全称是Vector Markup La ... -
java串口编程-读取称重仪表中净重
2011-10-12 17:08 5189一、需求说明 ... -
记录oracle 关联更新的例子
2011-10-03 20:55 11551、说明 修改某一天“本期值”数据时,需要把第二天的“上期值 ... -
js--设为首页、加入收藏
2011-03-19 00:13 978<a onclick="this.style. ... -
org.hibernate.ObjectNotFoundException: No row with the given identifier exists
2011-03-08 00:19 20881、问题说明 hibenate中实体关联映射中<man ... -
VirtualBox网络配置-搭建数据库服务器
2011-02-10 23:50 31591、由于操作系统与数据库之间兼容性的问题,于是采用在虚拟机上安 ...
相关推荐
在IT行业中,TCP/IP协议是网络通信的基础,广泛应用于各种数据传输场景,包括实时传输图片。本项目"通过TCP/IP协议实时传输图片halcon,c++"旨在利用这些技术实现跨计算机的图像共享和处理。以下是对这个项目涉及的...
在C#编程环境中,网络传输图片涉及到多个关键知识点,包括文件操作、网络编程以及图像处理。下面将详细解析这些知识点: 1. **C# 文件操作**:在“发送图片”这个场景中,首先需要能够读取本地的图片文件。C#提供了...
这个过程中,开发者需要注意文件的读写操作,如使用CFile类来处理文件的打开、读取和关闭,以及确保数据在网络传输中的完整性。 为了实现点对点的传输,即从一个客户端直接将图片发送到另一个客户端,开发者可能...
VC++编写的socket网络传输图片源代码
标题 "C#网络传输图片源代码" 指的是使用C#编程语言,通过网络协议(如TCP/IP)发送和接收图片数据的源代码示例。这样的应用可能涉及多种技术,包括但不限于网络套接字(Sockets)、流处理(Streams)和图像处理。 ...
图片在传输过程中通常会被转化为二进制流(byte array),这是因为网络传输主要处理的是字节数据。在Android中,我们可以使用HTTP或HTTPS协议通过Socket编程来发送和接收这些字节流。 1. **HTTP/HTTPS通信**:HTTP...
在IT领域,网络传输是日常工作中不可或缺的一部分,特别是在多媒体数据如图片、音频和视频的分享中。本示例"网络传输图片TCP_Demo"聚焦于使用Socket编程来实现在网络中传输图片,这是一种基础但至关重要的技能。...
在“丑陋版qt网络传输jpeg图片”这个项目中,我们聚焦于利用QT来实现在Linux环境下,通过TCP协议进行JPEG图片的传输。尽管“丑陋版”可能指的是界面设计不美观,但核心功能——网络传输是关键。 首先,我们需要理解...
1. **网络通信基础**:易语言图片传输涉及到TCP/IP协议,这是互联网通信的基础。TCP(传输控制协议)提供可靠的数据传输,确保数据包按顺序到达且无丢失,适合图片这类大数据量的传输。 2. **数据编码与解码**:...
在这个例子中,“socket实现的网络传输图片”是一个使用Socket进行图片数据传输的示例。这个源码可能是用某种编程语言(如Java、C++或Python)编写的,它演示了如何通过Socket接口发送和接收图片数据。 1. **Socket...
在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库来实现网络传输图片。MFC 是一个由微软开发的C++类库,它为Windows应用程序开发提供了一种结构化的方式,使得开发者能够更方便地利用Windows ...
本项目涉及的是利用MFC实现的网络传输图片功能,这是一个基础且实用的网络编程应用场景,通常涉及到TCP/IP协议、socket编程以及二进制数据的处理。 首先,我们要理解MFC中的网络编程。MFC提供了CSocket类,它是基于...
无限网络传输工具是一款专为局域网环境设计的文件传输及聊天应用,旨在提供高效、便捷的通信解决方案。这款工具的出现,使得局域网内的用户无需依赖传统的数据线或者第三方云存储服务,就能轻松地进行文件共享和实时...
本文将深入探讨如何使用Socket来实现JPEG图片的传输,主要基于提供的标题和描述内容。 首先,让我们理解Socket的基本概念。Socket,也被称为套接字,是网络通信中的一个抽象接口,它允许两个应用程序通过网络进行...
(利用GIF_LZW算法实现的)网络图片传输 技术特点 ~~~~~~~~ 一、使用TCP协议传输数据。理由:稳定性好。 二、使用字节数据流进行传输,理由: A:VB的String存在自动Unicode转换问题,影响速度; B:可以直接发送8位...
TCPSocket摄像头实时传输视频和图片的C++源码是一个典型的网络编程应用场景,它涉及到的主要知识点包括TCP套接字编程、图像处理以及网络传输优化。下面将详细解释这些概念。 首先,TCP(Transmission Control ...
【文件图片传输程序】是一个基于C语言编写的实用程序,旨在实现文件和图像的网络传输。这个项目对于学习文件操作和网络编程的初学者来说,是一个极好的实践案例。通过这个程序,我们可以深入理解如何利用socket编程...
3. **编码格式**:图片在传输前可能需要转化为适合网络传输的格式,例如Base64编码,但这种方式会增加传输数据量。 4. **效率优化**:为了提高传输效率,可以考虑使用压缩技术减小图片大小,或者使用高效的传输协议...
本项目主要关注的是如何通过Java实现网络上的数据传输,包括字符串、文件和图片。下面将详细阐述Java网络通信的基本原理、关键技术以及实现图片和文件传输的策略。 首先,Java中的网络通信主要是基于Socket编程实现...
在这个"MFC实现的网络传输图片"项目中,开发者利用了MFC库和Socket编程来实现图片在网络中的发送与接收。 1. **MFC简介** MFC是微软为C++开发者设计的一套类库,它基于Windows API,并提供了许多抽象和封装,使得...