Skip to content

shaizansiddiqui/iOSImageCompressor

Repository files navigation

iOSImageCompressor

iOSImageCompressor is a small Swift image compression library inspired by WeChat's image resizing strategy.

It supports:

  • Swift Package Manager
  • CocoaPods
  • A backwards-compatible UIImage.wxCompress(...) API

Features

  • Resizes large images using the classic WeChat-style boundary rules
  • Compresses to JPEG output with configurable quality
  • Ships as a standalone Swift package ready for a public Git repository

Requirements

  • iOS 13.0+
  • tvOS 13.0+
  • macOS 10.15+
  • Mac Catalyst 13.0+
  • Swift 5.9+

Installation

Swift Package Manager

In Xcode, add your repository URL as a package dependency:

dependencies: [
    .package(url: "https://github.com/shaizansiddiqui/iOSImageCompressor.git", from: "1.0.0")
]

Then add the product to your target:

.product(name: "iOSImageCompressor", package: "iOSImageCompressor")

CocoaPods

pod 'iOSImageCompressor', '~> 1.0'

Usage

import UIKit
import iOSImageCompressor

let image = UIImage(named: "sample")!
let compressed = image.wxCompress(type: .timeline)
let sessionData = image.wxCompressedData(type: .session, compressionQuality: 0.6)

You can also use the utility type directly:

let compressedImage = iOSImageCompressor.compress(
    image,
    type: .timeline,
    compressionQuality: 0.5
)

Publishing Checklist

Before pushing publicly, tag a release:

git tag 1.0.0
git push origin main --tags

After that, validate the podspec:

pod lib lint iOSImageCompressor.podspec

License

MIT