GithubHelp home page GithubHelp logo

guozhiqiang / luban_ios Goto Github PK

View Code? Open in Web Editor NEW
129.0 10.0 28.0 3.87 MB

Wiki

Home Page: https://github.com/GuoZhiQiang/Luban_iOS/wiki

License: MIT License

Objective-C 95.39% Ruby 4.61%
image-compress high-performance luban-ios wiki watermark resize-images

luban_ios's Introduction

更新.Update

  • 现在可以添加自定义文字 水印 了 | Add custom text as an watermark to your image
  • 对应的调用方法:[UIImage lubanCompressImage:image withMask:maskName]

Luban-iOS

压缩比如下表.Compare:

机型 照片获取途径 原图大小.before 压缩后大小.after
6s 拍照(竖屏) 5.19 Mb 86.8 Kb
6s 拍照(横屏) 5.26 Mb 29.2 Kb
7plus 拍照(竖屏) 8.05 Mb 229.1 Kb
7plus 拍照(横屏) 6.34 Mb 39.6 Kb
6s 截屏 1.05 Mb 53.56 Kb
7plus 截屏 234.7 Kb 37.5 Kb

安装.Install

Via CocoaPods

  • Podfile 文件里添加pod 'Luban_iOS'

    然后在终端运行 pod install

    注意:如果使用 pod search Luban_iOS or pod search Luban-iOS 搜不到,那么,你需要

 pod setup
 rm -rf ~/Library/Caches/Cocoapods

使用.Usage

  • 下载 Demo 试玩一下,看一下输出,点一下图片看压缩后的效果大图

  • 导入 Category 头文件:

    #import <Luban_iOS/UIImage+Luban_iOS_Extension_h.h>

  • 方法调用

    [UIImage lubanCompressImage:image] or

    [UIImage lubanCompressImage:image withMask:maskName] or

    [UIImage lubanCompressImage:image withCustomImage:imageName]

  • 参数说明

/*
 image:    UIImage 对象
 withMask: 添加水印名字 (NSString)
 withCustomImage: 水印图片名称
*/
  • 注意: 想使用自定义文字水印的请使用方法:[UIImage lubanCompressImage:image withMask:maskName] 添加水印时,想使用自定义图片水印的请使用方法:[UIImage lubanCompressImage:image withCustomImage:imageName]

后续添加的功能.Further

  • 可以自定义水印旋转角度
  • 可以根据一个本地路径,进行压缩并存储

luban_ios's People

Contributors

guozhiqiang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

luban_ios's Issues

算法问题

double scale = ((double)fixelW/fixelH);

scale 的计算跟鲁班算法有差异。
在以上的代码中,当fixelW>fixelH时, scale就大于1了

代码修改参考

    int longSide = MAX(fixelW, fixelH);
    int shortSide = MIN(fixelW, fixelH);
    double scale = ((double)shortSide / (double)longSide);

宽度被修改的问题找到了

是因为 ceil 这个函数 。

计算 outW / (float) width 时,如果结果是 2.00087 这样,你那么 使用 ceil(outW / (float) width) 之后,得到的结果为 3 。其实我想要的是 2 ,这就造成了 除数变大,得到的图片宽度变窄了。

马上修复一下,然后提交一下代码。

对各位造成的困扰,在这里说声对不起了

@ALL

关于压缩比的问题

默认压缩的太小了,10M的图片压缩到了200K左右,有点看不清细节,能调节压缩比吗

核心代码注释

您好,建议在压缩图片核心方法中加一点注释方便理解,谢谢😂

文件大小计算的不对

size before compressed == 6427.179688 Kb
Luban-iOS image data size after compressed ==38.208984 kb
压缩后说是38kb多一点,但是我把压缩后的图片上传到七牛,显示352kb多点

upload success
下面是七牛返回的结果,我根据hash 的key找到的文件,见下图
Optional(<QNResponseInfo= id: 4218172F-5333-49E4-A722-AB87305A486F, ver: 7.2.3, status: 200, requestId: EDYAAASwKBGWsQ8V, xlog: body;TBLMGR:1;RS:2;CFGG:3;s.ph;s.put.tw;s.put.tr:10;s.put.tw;s.put.tr:8;s.ph;PFDS:8;PFDS:11;body;TBLMGR:1;UC:8;CFGG:10;rs4_3.sel/not found;rdb.g/no such key;DBD/404;v4.get/Document not found;rs4_3.ins:2;rwro.ins:3;RS:91;rs.put:91;rs-upload.putFile:104;UP:239, xvia: (null), host: upload-z2.qiniup.com ip: (null) duration: 0.638038 s time: 1517626857 error: (null)>)
nil
Optional([AnyHashable("hash"): FjZNHGWwjxmwmwxtGRkkJFWi7EQ3, AnyHashable("key"): FjZNHGWwjxmwmwxtGRkkJFWi7EQ3])

2018-02-03 11 08 25

感觉新版压缩逻辑不对

tim 20180528082537

怎么看都感觉这个压缩逻辑不对。
一开始用0.06质量压一遍,不是最差质量了吗
后面在这个0.06的基础上用0.12压。。。

作者是不是想要 不超过某个文件体积的情况下,尽量使图片品质损失最小?那应该每次都在最原始的图片上用0.12、0.18压

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.