- 浏览: 8521 次
- 性别:
文章分类
最新评论
java
缩略图
private Bitmap comp(Bitmap image) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 100, baos); if( baos.toByteArray().length / 1024>1024) {//判断如果图片大于1M,进行压缩避免在生成图片(BitmapFactory.decodeStream)时溢出 baos.reset();//重置baos即清空baos image.compress(Bitmap.CompressFormat.JPEG, 50, baos);//这里压缩50%,把压缩后的数据存放到baos中 } ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray()); BitmapFactory.Options newOpts = new BitmapFactory.Options(); //开始读入图片,此时把options.inJustDecodeBounds 设回true了 newOpts.inJustDecodeBounds = true; Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, newOpts); newOpts.inJustDecodeBounds = false; int w = newOpts.outWidth; int h = newOpts.outHeight; //现在主流手机比较多是800*480分辨率,所以高和宽我们设置为 float hh = 800f;//这里设置高度为800f float ww =580f;//这里设置宽度为480f //缩放比。由于是固定比例缩放,只用高或者宽其中一个数据进行计算即可 int be = 1;//be=1表示不缩放 if (w > h && w > ww) {//如果宽度大的话根据宽度固定大小缩放 be = (int) (newOpts.outWidth / ww); } else if (w < h && h > hh) {//如果高度高的话根据宽度固定大小缩放 be = (int) (newOpts.outHeight / hh); } if (be <= 0) be = 1; newOpts.inSampleSize = be;//设置缩放比例 //重新读入图片,注意此时已经把options.inJustDecodeBounds 设回false了 isBm = new ByteArrayInputStream(baos.toByteArray()); bitmap = BitmapFactory.decodeStream(isBm, null, newOpts); return compressImage(bitmap);//压缩好比例大小后再进行质量压缩 } private Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 100, baos);//质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中 int options = 100; while ( baos.toByteArray().length / 1024>300) { //循环判断如果压缩后图片是否大于100kb,大于继续压缩 baos.reset();//重置baos即清空baos image.compress(Bitmap.CompressFormat.JPEG, options, baos);//这里压缩options%,把压缩后的数据存放到baos中 options -= 10;//每次都减少10 } ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());//把压缩后的数据baos存放到ByteArrayInputStream中 Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null);//把ByteArrayInputStream数据生成图片 return bitmap; }
缩略图
public static Bitmap getImageThumbnail(String imagePath, int width, int height) { Bitmap bitmap = null; BitmapFactory.Options options = new BitmapFactory.Options(); options.inPreferredConfig = Bitmap.Config.ARGB_4444; options.inPurgeable = true; options.inInputShareable = true; options.inJustDecodeBounds = true; // 获取这个图片的宽和高,注意此处的bitmap为null bitmap = BitmapFactory.decodeFile(imagePath, options); options.inJustDecodeBounds = false; // 设为 false // 计算缩放比 int h = options.outHeight; int w = options.outWidth; int beWidth = w / width; int beHeight = h / height; int be = 1; if (beWidth < beHeight) { be = beWidth; } else { be = beHeight; } if (be <= 0) { be = 1; } options.inSampleSize = be; // 重新读入图片,读取缩放后的bitmap,注意这次要把options.inJustDecodeBounds 设为 false bitmap = BitmapFactory.decodeFile(imagePath, options); // 利用ThumbnailUtils来创建缩略图,这里要指定要缩放哪个Bitmap对象 bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height, ThumbnailUtils.OPTIONS_RECYCLE_INPUT); return bitmap; } // 可用于生成缩略图。 /** * Creates a centered bitmap of the desired size. Recycles the input. * * @param source */ public static Bitmap extractMiniThumb(String imagePath, int width, int height) { // return extractMiniThumb(source, width, height, true); return getImageThumbnail(imagePath, width, height); }
发表评论
-
GestureDetector类及其用法
2014-09-02 14:41 0当用户触摸屏幕的 ... -
信鸽demo
2014-07-07 10:12 0DBOpenHelper package com.exam ... -
几种listitem griditem
2014-06-25 14:18 0<ListView and ... -
title上左右按钮
2014-06-25 13:33 326<RelativeLayout andr ... -
理财dome
2014-06-13 17:07 0带SQlite的项目 数据模型公共类 包名.model 收入信 ... -
选项卡片段
2014-06-10 14:34 442主界面的XML <TabHost xmlns:and ... -
Galley
2014-06-10 13:45 0Java源代码 public class Chapter7 ... -
GridView
2014-06-10 13:10 0例子一:继承ArrayAdapter作为自定义adapter ... -
Spinner
2014-06-10 10:33 0设置Spinner之中的元素内容,采用了ArrayAdapte ... -
ListView继承ListActivity来实现
2014-06-10 10:10 0ListActivity是一个全屏的list,如果我们需要定制 ... -
文件管理器(草稿篇)
2014-06-06 10:23 1021package com.example.wenjiangu ... -
手机通讯录
2014-06-06 10:05 406仅导出手机联系人 package com.example. ... -
发送手机号获取验证码
2014-06-06 09:03 0输入手机号 package com.example.boh ... -
获取自定义提示转轮
2014-06-03 10:21 430java LayoutInflater inflater = ... -
修改密码
2014-06-03 10:14 344bc_Button=(Button)findViewById( ... -
EditText边框
2014-06-03 10:07 521drawable my_edittext.xml <?x ... -
登录界面
2014-06-03 10:01 456package com.gcntc.news_editing_ ... -
欢迎界面
2014-06-03 09:58 416package com.gcntc.news_editing_ ...
相关推荐
生成缩略图则可以自由控制缩放比例和质量,但相对耗时。以下是使用requestThumbnail的示例: ```java long imageId = cursor.getLong(cursor.getColumnIndex(MediaStore.Images.Media._ID)); Uri thumbUri = Uri....
图片缩略图在IT行业中是图像处理和网页设计的关键元素,尤其在展示大量图片时,如照片库、电商网站或社交媒体平台。它们提供了一个高效且直观的方式,让用户快速浏览和预览图片内容,而无需加载完整大小的图像,从而...
- **尺寸调整**:缩略图通常是原图的一个小版本,可以通过设定宽度和高度来裁剪或按比例缩放图片。 - **保持比例**:为避免拉伸或变形,缩略图的生成通常会根据原图宽高比进行等比例缩放。 - **质量控制**:生成...
- 缩略图可以有效降低内存占用,提升用户体验,但也要注意保持清晰度,避免因缩放导致的模糊。 6. **点击缩略图删除对应文件**: - 当用户点击缩略图时,应用需要识别该缩略图对应的原始图片,并执行删除操作。这...
2. **照片管理**:如Adobe Lightroom、Google Photos等,缩略图帮助用户快速浏览和选择照片。 3. **桌面环境**:Windows、macOS等操作系统的文件管理器显示文件夹内的缩略图预览。 4. **电商网站**:商品图片通常以...
在IT领域,图片缩略图展开是一个常见的操作,特别是在网页设计、图像处理和多媒体应用中。这个过程涉及到从一个小尺寸的预览图像(缩略图)恢复到原始的大尺寸图片,以便用户可以查看细节或者进行编辑。下面我们将...
本主题涉及的是利用jQuery实现一个功能:当用户在网格布局中的缩略图上点击时,图片会放大并进行切换,以展示更多细节。这种效果在产品展示、照片画廊或任何需要图片预览的场景都非常常见。 首先,我们需要理解这个...
以上代码创建了一个新的缩略图类实例,设置了源图和目标图路径,以及目标尺寸,然后调用`generate()`方法生成缩略图。 在实际应用中,你可能需要考虑更多的细节,比如错误处理、图像格式检查、透明度处理等。此外,...
缩略图的生成可以使用Bitmap的缩放方法,以减少内存消耗。同时,为了提高用户体验,可能还需要实现滑动加载更多、平滑滚动等特性。 在"TakePhotoAdapter"这个文件名中,我们可以推测这可能是一个适配器类,用于将...
【标签】"(C# 缩略图批量生成器 附源码)"进一步明确了该程序的关键技术点:C#语言和缩略图生成。C#是微软开发的一种现代编程语言,它的语法简洁明了,适合开发高性能的应用程序。而缩略图生成则是图像处理领域的一个...
用户可以根据需要设置缩略图的宽度、高度或者按照比例缩放。此外,还可以选择保持原图宽高比,避免因强制拉伸导致的图片变形。对于那些需要固定尺寸的场景,比如社交媒体分享、网站上传等,这个功能尤其实用。 再者...
在实际应用中,例如在网站开发、照片库管理软件或者多媒体应用程序中,都需要对大量图片进行预览处理,生成缩略图以节省显示资源和提高用户体验。 批量生成缩略图的核心在于读取原始图片文件,根据设定的尺寸比例...
在实际应用中,缩略图生成有多种用途,如在网页中展示图片预览、在文件管理器中快速浏览图片、在社交媒体平台显示照片缩略图等。而使用GDI+作为图像处理工具,不仅可以生成缩略图,还能进行更复杂的图像操作,例如...
3. **缩略图生成**:缩略图是为了节省存储空间和提高页面加载速度,将大图按比例缩小生成的小图。在前端,可以使用JavaScript库如sharp或canvas来实时生成缩略图;在后端,服务端语言如PHP、Node.js也可以通过相应库...
总的来说,这个“批量制作缩略图的工具”展示了Delphi在图像处理和文件操作方面的强大能力,同时也体现了Delphi在快速开发高效、可定制应用程序上的优势。对于那些熟悉Delphi并需要处理大量图像的用户来说,这样的...
1. **HTML结构**:在HTML中,为每张图片创建一个容器,包含缩略图和隐藏的全尺寸图片。容器可以通过CSS进行定位和样式化。 2. **jQuery绑定**:使用jQuery选择器选择所有图片容器,并为它们添加点击事件监听器。当...
在IT行业中,缩略图和图片预览是两个非常重要的概念,特别是在图像处理和用户界面设计上。这里我们将深入探讨这两个知识点,以及如何在VC++(Visual C++)环境中实现它们。 首先,缩略图是一种小型的图像表示,通常...
**批量缩略图工具 BatchPic 2.95 绿色无限制** BatchPic 是一款高效实用的批量图像处理软件,特别适用于需要对大量图片进行相同或类似操作的情况,如调整尺寸、添加水印、转换格式等。版本 2.95 是其更新的一个稳定...
生成缩略图的方法主要有两种:等比例缩放和固定尺寸裁剪。等比例缩放保持原图的比例,避免拉伸变形,而固定尺寸裁剪则可能需要对超出目标尺寸的部分进行裁剪。例如,我们可以利用PIL库中的resize()函数实现等比例...
这个类可以帮助开发者自动对图像进行缩放,生成适应不同场景的缩略图,同时还能添加水印,保护版权或者增加品牌标识。水印可以是文字、图像或透明度调整,位置也可以自由设定,以满足不同的设计需求。 这三个类文件...