Tạo QR Code với logo và màu tùy chỉnh bằng Swift

Tram Ho

QR Code được sử dụng rất nhiều để chia sẻ nội dung hoặc thêm người dùng mới trong các ứng dụng như Twitter và Snapchat. Kể từ iOS 11, người dùng có thể quét mã QR bằng ứng dụng máy ảnh được tích hợp sẵn trong iOS. Và iOS cũng có thể tạo mã QR cho nội dung nhúng.

1. Tiến hành tạo mã QR trong iOS

Việc tạo mã QR trong iOS dễ dàng hơn bao giờ hết kể từ khi ra đời bộ lọc hình ảnh lõi CIQRCodeGenerator. Nó tạo ra một mã QR màu đen trắng đơn giản cho chuỗi đầu vào nhất định. Chúng ta làm như sau :

Mã QR này đã hoạt động, nhưng nhìn nó không thực sự hấp dẫn cho lắm và có thể nó sẽ không phù hợp với design ứng dụng của bạn. Do đó, sẽ thực sự tuyệt vời nếu chúng ta có thể tự custom nó để phù hợp với design ứng dụng của mình.

2. Thực hiện thay đổi màu của mã QR

Bước đầu tiên trong việc custom mã QR là thay đổi màu sắc. Chúng ta sẽ thực hiện việc này theo ba bước:

  • Invert màu đen và trắng
  • Che màu đen thành trong suốt
  • Thay đổi màu sắc

Để làm cho code này dễ sử dụng hơn, chúng ta sẽ tạo một extension cho CIImage.

Mã QR thường liên kết đến một URL. Do đó, bạn cũng nên tạo một extension cho URL

Hoặc mã QR có thể được tạo từ một chuỗi String bất kì, ta thêm method sau để sử dụng cho trường hợp này :

Chúng ta tiến hành tạo mã QR từ URL với màu xanh dương như sau:

và đây là kết quả :

3. Mã QR có logo custom

Để biến nó thành một QR code thực sự nổi bật, chúng ta có thể thêm logo nhỏ tùy chỉnh của riêng mình bên trong QR CIImage bằng cách sử dụng một extension của UIImage:

Lưu ý: Khi bạn cố gắng thiết lập chiều rộng / chiều cao của logo nhỏ, hãy đảm bảo rằng nó không quá lớn, nếu không sẽ làm cho mã QR không thể đọc được.

Ta tiến hành thực hiện đầy đủ đoạn code như sau :

Và đây là thành quả :

4. Kết luận

Việc tạo mã QR với màu và logo tuỳ chỉnh sẽ khiến ứng dụng của bạn trở nên hấp dẫn và đẹp đẽ hơn để phù hợp với design ứng dụng của mình. Hy vọng rằng, điều này sẽ
giúp bạn trong việc code hiệu quả hơn.

Vậy là bài viết của mình đến đây là hết. Cảm ơn các bạn đã theo dõi bài viết.

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo