unity3D -- 压缩图片
由于微信分享图片要求图片大小不能超过200k,有些手机的高清屏幕截下来的图片肯定大于200k了,这个时候只能是压缩图片了,unity压缩图片的方法,直接上C#源代码:
public void WXShareImage (string imagePath, int sceneType)
{
byte[] fileData = File.ReadAllBytes (imagePath);
Texture2D tex = new Texture2D ((int)(Screen.width), (int)(Screen.height), TextureFormat.RGB24, true);
tex.LoadImage (fileData);
float miniSize = Mathf.Max (tex.width, tex.height);
float scale = 1200.0f / miniSize;
if (scale > 1.0f) {
scale = 1.0f;
}
Texture2D temp = ScaleTexture (tex, (int)(tex.width * scale), (int)(tex.height * scale));
byte[] pngData = temp.EncodeToJPG ();
string miniImagePath = imagePath.Replace (".png", "_min.jpg");
File.WriteAllBytes (miniImagePath, pngData);
Destroy (tex);
Destroy (temp);
}
该函数的接受两个参数,一个是传过来的图片路径,第二个参数是微信分享场景的id(微信文档有)。
private Texture2D ScaleTexture (Texture2D source, int targetWidth, int targetHeight)
{
Texture2D result = new Texture2D (targetWidth, targetHeight, source.format, true);
Color[] rpixels = result.GetPixels (0);
float incX = ((float)1 / source.width) * ((float)source.width / targetWidth);
float incY = ((float)1 / source.height) * ((float)source.height / targetHeight);
for (int px = 0; px < rpixels.Length; px++) {
rpixels [px] = source.GetPixelBilinear (incX * ((float)px % targetWidth), incY * ((float)Mathf.Floor (px / targetWidth)));
}
result.SetPixels (rpixels, 0);
result.Apply ();
return result;
}
该函数将图片压缩并返回压缩后的图片,压缩后的大小由调用者传过来。
源代码功能把最后图片转成了JPG格式,要是想转成PNG格式的话,unity有相应的方法,但是转成PNG,图片占用的内存会更大,就不能压缩成1200像素的了,要压缩的更小,这个需要注意一下。
该方法我已经测试过,没有问题,所以才上的源代码,图就不传了,反正压缩前后的图片截下来你也看不到变下了。
——Rocky
unity3D -- 压缩图片相关推荐
- Android 高清加载巨图方案 拒绝压缩图片
Android 高清加载巨图方案 拒绝压缩图片 转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/49300989: 本文出自: ...
- android h5 多图上传源码,JS移动端/H5同时选择多张图片上传并使用canvas压缩图片...
最近在做一个H5的项目,里边涉及到拍照上传图片的功能以及识别图片的功能,这里对识别图片的功能不做赘述,不属本文范畴.我在做完并上线项目后,同事跟我提了一个要求是可不可以同时选择多张图片上传,我做的时候 ...
- idea批量修改变量快捷键mac_使用Mac自带功能批量修改图片名称、类型和压缩图片大小...
Mac电脑自带的聚焦搜索功能已经很强大,可以快速准确的搜索电脑内的文件,但是从网上下载的文件,特别是一些图片文件都是一串数字组成的文件名,很难记忆和搜索,我们可以使用Mac自带的『自动操作』功能给图片 ...
- node 压缩图片_1Mb压缩成100k,图片无损压缩我选择它
Boss有话说 Compressor 这是一款能够快速高效压缩图片的在线神器,可以在线压缩优化的格式包含 JPEG,PNG,SVG,GIF 和 WEBP 等主流的图片格式.相比之前分享的[ TinyP ...
- linux压缩图片脚本,说明Ubuntu压缩图片脚本批量方法
以下就是Ubuntu压缩图片批量方法,这些Ubuntu压缩图片方法是我学了很久的心得,希望对大家有帮助.用DC拍出来的很多照片尺寸都很大,有时候我们需要缩小一下,最近google了一圈,发现了一些有用 ...
- jquery压缩图片插件
imageCompress 只有图片压缩功能,比较简单 jquery.imageCompress.js 使用说明: el:为上传框 quality:压缩图片质量,单位为% onloadStart:读取 ...
- LocalResizeIMG前端HTML5本地压缩图片上传,兼容移动设备IOS,android
LocalResizeIMG前端HTML5本地压缩图片上传,兼容移动设备IOS,android jincon 发表于 2015-02-26 18:31:01 发表在: php开发 localresiz ...
- 【问题帖】压缩图片大小至指定Kb以下
像PS,QQ影像等都有该功能,将图片大小压缩至指定kb以下. 我也来山寨一把,到目前为止,控制图片的大小,平时的解决方案通过分辨率和质量来控制的. 假定最后压缩的大小是100kb,那么在保证不大于10 ...
- php后台图片压缩_php实现等比例压缩图片
/** * desription 压缩图片 * @param sting $imgsrc 图片路径 * @param string $imgdst 压缩后保存路径 */ public function ...
最新文章
- 被鱼刺扎一下就没了条手臂?这种“吃人肉”的细菌身边并不罕见
- 安装class-dump
- jetson nano 摄像头购买
- 光流 | 基于Matlab实现Lucas-Kanade方法:方法1(附源代码)
- php如何制作视频特效,用PS将bmp图片制作出漂亮的动态视频效果
- [转载] python 生成器读取文件
- python中data.find_all爬取网站为空列表_利用Golang快速爬取盗版网站的整套音频
- 9 内存模型和名称空间
- win10字体显示Mac效果+Chrome字体效果增强
- 超级马里奥【附源码】
- Python 流程控制
- Linux系统文件加密与解密应用
- 为什么说用友 iuap 是更懂企业业务的数智平台?
- HBase--JavaAPI的操作,创建表修改表,增删改查数据
- QQ群裂变引流做CPA,日引500+流量
- 外贸用户如何创建邮箱并登录邮箱?
- c语言程序由一个或多个函数,一个C源程序可由一个或多个函数组成。()
- 机器学习:参数模型、非参数模型
- 【youcans 的 OpenCV 例程200篇】146. 基于灰度形态学的复杂背景图像重建
- vscode 代码格式化vetur