/*
* ImageInfo.java
*
* Version 1.9
*
* A Java class to determine image width, height and color depth for
* a number of image file formats.
*
* Written by Marco Schmidt
*
* Contributed to the Public Domain.
*/
package com.jeecms.common.image;
import java.io.DataInput;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.IOException;
import java.net.URL;
import java.util.Vector;
/**
* Get file format, image resolution, number of bits per pixel and optionally
* number of images, comments and physical resolution from
* JPEG, GIF, BMP, PCX, PNG, IFF, RAS, PBM, PGM, PPM and PSD files
* (or input streams).
* <p>
* Use the class like this:
* <pre>
* ImageInfo ii = new ImageInfo();
* ii.setInput(in); // in can be InputStream or RandomAccessFile
* ii.setDetermineImageNumber(true); // default is false
* ii.setCollectComments(true); // default is false
* if (!ii.check()) {
* System.err.println("Not a supported image file format.");
* return;
* }
* System.out.println(ii.getFormatName() + ", " + ii.getMimeType() +
* ", " + ii.getWidth() + " x " + ii.getHeight() + " pixels, " +
* ii.getBitsPerPixel() + " bits per pixel, " + ii.getNumberOfImages() +
* " image(s), " + ii.getNumberOfComments() + " comment(s).");
* // there are other properties, check out the API documentation
* </pre>
* You can also use this class as a command line program.
* Call it with a number of image file names and URLs as parameters:
* <pre>
* java ImageInfo *.jpg *.png *.gif http://somesite.tld/image.jpg
* </pre>
* or call it without parameters and pipe data to it:
* <pre>
* java ImageInfo < image.jpg
* </pre>
* <p>
* Known limitations:
* <ul>
* <li>When the determination of the number of images is turned off, GIF bits
* per pixel are only read from the global header.
* For some GIFs, local palettes change this to a typically larger
* value. To be certain to get the correct color depth, call
* setDetermineImageNumber(true) before calling check().
* The complete scan over the GIF file will take additional time.</li>
* <li>Transparency information is not included in the bits per pixel count.
* Actually, it was my decision not to include those bits, so it's a feature! ;-)</li>
* </ul>
* <p>
* Requirements:
* <ul>
* <li>Java 1.1 or higher</li>
* </ul>
* <p>
* The latest version can be found at <a href="http://schmidt.devlib.org/image-info/">http://schmidt.devlib.org/image-info/</a>.
* <p>
* Written by Marco Schmidt.
* <p>
* This class is contributed to the Public Domain.
* Use it at your own risk.
* <p>
* <a name="history">History</a>:
* <ul>
* <li><strong>2001-08-24</strong> Initial version.</li>
* <li><strong>2001-10-13</strong> Added support for the file formats BMP and PCX.</li>
* <li><strong>2001-10-16</strong> Fixed bug in read(int[], int, int) that returned
* <li><strong>2002-01-22</strong> Added support for file formats Amiga IFF and Sun Raster (RAS).</li>
* <li><strong>2002-01-24</strong> Added support for file formats Portable Bitmap / Graymap / Pixmap (PBM, PGM, PPM) and Adobe Photoshop (PSD).
* Added new method getMimeType() to return the MIME type associated with a particular file format.</li>
* <li><strong>2002-03-15</strong> Added support to recognize number of images in file. Only works with GIF.
* Use {@link #setDetermineImageNumber} with <code>true</code> as argument to identify animated GIFs
* ({@link #getNumberOfImages()} will return a value larger than <code>1</code>).</li>
* <li><strong>2002-04-10</strong> Fixed a bug in the feature 'determine number of images in animated GIF' introduced with version 1.1.
* Thanks to Marcelo P. Lima for sending in the bug report.
* Released as 1.1.1.</li>
* <li><strong>2002-04-18</strong> Added {@link #setCollectComments(boolean)}.
* That new method lets the user specify whether textual comments are to be
* stored in an internal list when encountered in an input image file / stream.
* Added two methods to return the physical width and height of the image in dpi:
* {@link #getPhysicalWidthDpi()} and {@link #getPhysicalHeightDpi()}.
* If the physical resolution could not be retrieved, these methods return <code>-1</code>.
* </li>
* <li><strong>2002-04-23</strong> Added support for the new properties physical resolution and
* comments for some formats. Released as 1.2.</li>
* <li><strong>2002-06-17</strong> Added support for SWF, sent in by Michael Aird.
* Changed checkJpeg() so that other APP markers than APP0 will not lead to a failure anymore.
* Released as 1.3.</li>
* <li><strong>2003-07-28</strong> Bug fix - skip method now takes return values into consideration.
* Less bytes than necessary may have been skipped, leading to flaws in the retrieved information in some cases.
* Thanks to Bernard Bernstein for pointing that out.
* Released as 1.4.</li>
* <li><strong>2004-02-29</strong> Added support for recognizing progressive JPEG and
* interlaced PNG and GIF. A new method {@link #isProgressive()} returns whether ImageInfo
* has found that the storage type is progressive (or interlaced).
* Thanks to Joe Germuska for suggesting the feature.
* Bug fix: BMP physical resolution is now correctly determined.
* Released as 1.5.</li>
* <li><strong>2004-11-30</strong> Bug fix: recognizing progressive GIFs
* (interlaced in GIF terminology) did not work (thanks to Franz Jeitler for
* pointing this out). Now it should work, but only if the number of images is determined.
* This is because information on interlacing is stored in a local image header.
* In theory, different images could be stored interlaced and non-interlaced in one
* file. However, I think that's unlikely. Right now, the last image in the GIF file
* that is examined by ImageInfo is used for the "progressive" status.</li>
* <li><strong>2005-01-02</strong> Some code clean up (unused methods and variables
* commented out, missing javadoc comments, etc.). Thanks to George Sexton for a long list.
* Removed usage of Boolean.toString because
* it's a Java 1.4+ feature (thanks to Gregor Dupont).
* Changed delimiter character in compact output from semicolon to tabulator
* (for better integration with cut(1) and other Unix tools).
* Added some points to the <a href="http://schmidt.devlib.org/image-info/index.html#knownissues">'Known
* issues' section of the website</a>.
* Released as 1.6.</li>
* <li><strong>2005-07-26</strong> Removed code to identify Flash (SWF) files.
* Has repeatedly led to problems and support requests, and I don't know the
* format and don't have the time and interest to fix it myself.
* I repeatedly included fixes by others which didn't work for some people.
* I give up on SWF. Please do not contact me about it anymore.
* Set package of ImageInfo class to org.devlib.schmidt.imageinfo (a package
* was repeatedly requested by some users).
* Released as 1.7.</li>
* <li><strong>2006-02-23</strong> Removed Flash helper methods which weren't used elsewhere.
* Updated skip method which tries "read" whenever "skip(Bytes)" returns a result of 0.
* The old method didn't work with certain input stream types on truncated data streams.
* Thanks to Martin Leidig for reporting this and sending in code.
* Released as 1.8.</li>
* </li>
* <li><strong>2006-11-13</strong> Removed check that made ImageInfo report JPEG APPx
* markers smaller than 14 bytes as files in unknown format. Such JPEGs seem to be
* generated by Google's Picasa application. First reported with fix by
* Karl von Randow. Released as 1.9.</li>
* </ul>
* @author Marco Schmidt
*/
@SuppressWarnings("unchecked")
public class ImageInfo {
/**
* Return value of {@link #getFormat()} for JPEG streams.
* ImageInfo can extract physical resolution and comments
* from JPEGs (only from APP0 headers).
* Only one image can be stored in a file.
* It is determ
没有合适的资源?快使用搜索试试~ 我知道了~
jeecms-2012-src.rar_4 3 2 1_JSP内容发布_cms_jsp cms_新闻发布
共626个文件
java:571个
xml:48个
jar:3个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 117 浏览量
2022-09-21
17:38:36
上传
评论
收藏 857KB RAR 举报
温馨提示
JSP源码,CMS系统,JeeCMS jeecms v2012版是一款集新闻管理、图库管理、视频管理、下载系统、作品管理、产品发布及留言板于一体的综合性CMS系统。 jeecms v2012版新增功能如下: 1、新增统计功能 1.1、会员注册统计 1.2、内容统计 1.3、评论统计 1.4、留言统计 1.5、PV统计 1.6、独立IP统计 1.7、独立访客统计 1.8、人均浏览次数统计 1.9、来访网站 1.10、来访页面 1.11、来访关键字 1.12、受访页面 1.13、地区分布 1.14、统计初始化
资源推荐
资源详情
资源评论
收起资源包目录
jeecms-2012-src.rar_4 3 2 1_JSP内容发布_cms_jsp cms_新闻发布 (626个子文件)
.#ContentMngImpl.java.1.2 25KB
.#Content.hbm.xml.1.2 4KB
spymemcached-2.3.1.jar 470KB
memcachedclient-2.0.1.jar 42KB
jug-2.0.0.jar 27KB
ImageInfo.java 36KB
ContentAct.java 32KB
MessageAct.java 26KB
ContentDaoImpl.java 25KB
ContentMngImpl.java 25KB
CmsMessageAct.java 20KB
Content.java 19KB
CosMultipartRequest.java 19KB
CmsStatisticSvcImpl.java 18KB
MultipartParser.java 18KB
Channel.java 18KB
BaseCmsAcquisition.java 17KB
BaseChannelExt.java 16KB
ContributeAct.java 14KB
ChannelAct.java 14KB
BaseContent.java 14KB
BaseCmsSite.java 14KB
BaseCmsUser.java 14KB
FrontUtils.java 14KB
AbstractContentDirective.java 13KB
StaticPageDaoImpl.java 13KB
CmsAcquisitionAct.java 13KB
TemplateAct.java 12KB
AbstractRememberMeServices.java 12KB
IPSeekerImpl.java 11KB
TreeIntercptor.java 11KB
BaseContentCount.java 11KB
CmsStatisticAct.java 11KB
CmsUserMngImpl.java 10KB
ResourceAct.java 10KB
AdminContextInterceptor.java 10KB
AcquisitionSvcImpl.java 10KB
BaseContentExt.java 10KB
BaseCmsConfig.java 10KB
CasLoginAct.java 10KB
AverageImageScale.java 10KB
CmsLoginAct.java 10KB
CmsAdvertisingAct.java 10KB
BaseChannel.java 10KB
UnifiedUserMngImpl.java 9KB
ResourceType.java 9KB
BaseUnifiedUser.java 9KB
BaseCmsModelItem.java 9KB
FckAct.java 9KB
BaseCmsVoteTopic.java 9KB
CosMultipartResolver.java 9KB
CmsUser.java 9KB
CmsAdminGlobalAct.java 9KB
BaseCmsModel.java 9KB
RegisterAct.java 9KB
ChannelMngImpl.java 9KB
CmsAdminLocalAct.java 8KB
CmsTopicAct.java 8KB
TokenBasedRememberMeServices.java 8KB
ImageUploadAct.java 8KB
MemberAct.java 8KB
RequestUtils.java 8KB
FckAct.java 8KB
Finder.java 8KB
BaseCmsAdvertising.java 8KB
DirectiveUtils.java 8KB
PartInputStream.java 8KB
LuceneContentSvcImpl.java 8KB
CmsStatisticDaoImpl.java 8KB
CmsModelItemAct.java 7KB
BaseCmsComment.java 7KB
StaticPageSvcImpl.java 7KB
ImageUploadAct.java 7KB
ContentDao.java 7KB
CmsAcquisitionMngImpl.java 7KB
LoginAct.java 7KB
BaseCmsGroup.java 7KB
CmsResourceMngImpl.java 7KB
WebErrors.java 7KB
FilePart.java 7KB
BaseCmsSiteFlow.java 7KB
BaseCmsGuestbook.java 7KB
BaseCmsReceiverMessage.java 7KB
UploadResponse.java 7KB
Config.java 7KB
CommentAct.java 7KB
BaseCmsFriendlink.java 7KB
BaseCmsSiteModel.java 7KB
CmsMemberAct.java 7KB
CmsFriendlinkAct.java 7KB
VoteAct.java 7KB
BaseCmsTopic.java 7KB
CmsGuestbookAct.java 7KB
ForgotPasswordAct.java 7KB
BaseCmsMessage.java 7KB
CommentMemberAct.java 6KB
MagickImageScale.java 6KB
BaseCmsUserExt.java 6KB
URLHelper.java 6KB
LocalizedMessages.java 6KB
共 626 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
APei
- 粉丝: 83
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Pygame库实现新年烟花效果的Python代码
- 浪漫节日代码 - 爱心代码、圣诞树代码
- 睡眠健康与生活方式数据集,睡眠和生活习惯关联分析()
- 国际象棋检测10-YOLO(v5至v9)、COCO、CreateML、Paligemma数据集合集.rar
- 100个情侣头像,唯美手绘情侣头像
- 自动驾驶不同工况避障模型(perscan、simulink、carsim联仿),能够避开预设的(静态)障碍物
- 使用Python和Pygame实现圣诞节动画效果
- 数据分析-49-客户细分-K-Means聚类分析
- 车辆轨迹自适应预瞄跟踪控制和自适应p反馈联合控制,自适应预苗模型和基于模糊p控制均在simulink中搭建 个人觉得跟踪效果相比模糊pid效果好很多,轨迹跟踪过程,转角控制平滑自然,车速在36到72
- 企业可持续发展性数据集,ESG数据集,公司可持续发展性数据(可用于多种企业可持续性研究场景)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功