Kingfisher

 
 

ฟรี Swift Library เพื่อดาวน์โหลดและแคชรูปภาพ

Swift API แบบโอเพ่นซอร์สที่ช่วยให้นักพัฒนาซอฟต์แวร์ทำงานกับอิมเมจระยะไกลภายในเว็บแอปได้ อนุญาตให้ดาวน์โหลดและแคชรูปภาพ ใช้ตัวประมวลผลรูปภาพและตัวกรอง

Kingfisher คือการดําเนินการ Swift บริสุทธิ์น้ําหนักเบาที่ให้ฟังก์ชั่นที่สมบูรณ์สําหรับการทํางานกับรูปแบบไฟล์ภาพหลายโดยใช้รหัส Swift ห้องสมุดช่วยให้นักพัฒนาในการสร้างโปรแกรมที่สามารถจัดการภาพจากระยะไกลได้อย่างง่ายดาย ไลบรารีแบบอะซิงโครนัสดาวน์โหลดเช่นเดียวกับภาพแคชภายในโปรแกรมของพวกเขาเอง ห้องสมุดสนับสนุนแคชหลายชั้นสําหรับภาพที่ดาวน์โหลดมาซึ่งช่วยเพิ่มประสิทธิภาพของแอปอย่างมาก นั่นหมายความว่าภาพจะถูกเก็บไว้ในหน่วยความจําเช่นเดียวกับในดิสก์ดังนั้นจึงไม่จําเป็นต้องดาวน์โหลดอีกครั้ง

ไลบรารีนี้จัดการได้ง่ายมากและอำนวยความสะดวกในการจัดการแคช ผู้ใช้สามารถกำหนดขนาดและระยะเวลาของแคชได้อย่างง่ายดาย นอกจากนี้ยังมีระบบทำความสะอาดแคชอัตโนมัติที่ช่วยให้ผู้ใช้ป้องกันไม่ให้ห้องสมุดใช้ทรัพยากรมากเกินไป ฟีเจอร์ที่ยอดเยี่ยมอีกอย่างหนึ่งรวมอยู่ในการยกเลิกงาน ผู้ใช้สามารถยกเลิกกระบวนการดาวน์โหลดหรือดึงภาพได้อย่างง่ายดายหากไม่ต้องการอีกต่อไป

ห้องสมุด Kingfisher ช่วยให้นักพัฒนาใช้การดาวน์โหลดภาพและส่วนประกอบแคชภาพแยกต่างหากตามความต้องการของพวกเขา คุณสามารถสร้างแคชของคุณเองได้ตามความต้องการของคุณเองโดยใช้รหัส Swift มันปรับปรุงประสิทธิภาพแคชดิสก์โดยหลีกเลี่ยงการดําเนินงานดิสก์ที่ไม่จําเป็น ห้องสมุดเป็นโอเพนซอร์สและสามารถใช้ได้ภายใต้ใบอนุญาตไอที.

Previous Next

เริ่มต้นกับ Kingfisher

โคลนแหล่งล่าสุดโดยใช้คำสั่งต่อไปนี้

ติดตั้ง Kingfisher ผ่าน GitHub

$ git submodule add https://github.com/onevcat/Kingfisher.git 

ดาวน์โหลดและแคชรูปภาพผ่านห้องสมุดรวดเร็ว

มันเป็นงานที่ยากมากในการดาวน์โหลดโปรแกรมภาพและเก็บไว้ในแคชโดยใช้ URL. แหล่งเปิดห้องสมุด Swift Kingfisher ทําให้มันง่ายสําหรับนักพัฒนาซอฟต์แวร์เพื่อดาวน์โหลดและแคชภาพได้อย่างมีประสิทธิภาพภายในโปรแกรมของตัวเอง. ห้องสมุดสนับสนุนภาพแคชทั้งในหน่วยความจําเช่นเดียวกับในดิสก์ โดยค่าเริ่มต้นจํานวนเงิน AM ที่จะใช้ไม่ได้ จํากัด และผู้ใช้สามารถกําหนดค่าตัวเอง

ดาวน์โหลดและแคชรูปภาพผ่านห้องสมุดรวดเร็ว

let urls = ["https://example.com/image1.jpg", "https://example.com/image2.jpg"]
           .map { URL(string: $0)! }
let prefetcher = ImagePrefetcher(urls: urls) {
    skippedResources, failedResources, completedResources in
    print("These resources are prefetched: \(completedResources)")
}
prefetcher.start()
// Later when you need to display these images:
imageView.kf.setImage(with: urls[0])
anotherImageView.kf.setImage(with: urls[1])

การดูภาพภายในแอป Swift

ห้องสมุด Kingfisher ช่วยให้โปรแกรมเมอร์ซอฟต์แวร์รวมความสามารถในการดูภาพภายในแอปพลิเคชันได้อย่างง่ายดาย วิธีที่ง่ายที่สุดในการตั้งค่ามุมมองภาพคือการใช้ส่วนขยาย UIImageView ห้องสมุดจะดาวน์โหลดภาพจาก URL และนํามันไปทั้งแคชหน่วยความจําและแคชดิสก์และแสดงใน imageView เมื่อผู้ใช้หลังเรียกเดียวกัน URL, มันทันทีจะดึงและแสดงภาพจากแคช. นอกจากนี้ยังสนับสนุนฟังก์ชั่นต่างๆที่เกี่ยวข้องกับภาพเช่นภาพดาวน์โหลดซีดจางแสดงผู้ถือสถานที่ภาพมุมกลมและอื่น ๆ

ดูรูปภาพภายในแอป Swift

import Kingfisher
let url = URL(string: "https://example.com/image.png")
imageView.kf.setImage(with: url)

จัดเก็บด้วยตนเองหรือลบภาพแคช

ห้องสมุดเปิด Swift Kingfisher ช่วยให้โปรแกรมเมอร์สามารถจัดเก็บและลบภาพจากแคชได้อย่างง่ายดาย โดยค่าเริ่มต้นวิธีการขยายมุมมองสามารถใช้ในการจัดเก็บภาพที่ดึงเพื่อแคชโดยอัตโนมัติ แต่คุณสามารถทําได้ด้วยตนเองด้วยวิธีการ cache.store () นอกจากนี้คุณยังสามารถส่งข้อมูลต้นฉบับของภาพซึ่งช่วยให้ห้องสมุดเพื่อตรวจสอบรูปแบบที่ควรจะเก็บไว้ นอกจากนี้ยังให้การสนับสนุนสําหรับการลบภาพบางอย่างออกจากแคชด้วยตนเอง นอกจากนี้ยังสนับสนุนการล้างข้อมูลแคชทั้งหมดรายงานขนาดการจัดเก็บดิสก์และสร้างแคชของคุณเอง

ดูรูปภาพภายในแอป Swift

//Check whether an image in the cache
let cache = ImageCache.default
let cached = cache.isCached(forKey: cacheKey)
// To know where the cached image is:
let cacheType = cache.imageCachedType(forKey: cacheKey)
// `.memory`, `.disk` or `.none`.
// Store Image in the cache
let processor = RoundCornerImageProcessor(cornerRadius: 20)
imageView.kf.setImage(with: url, options: [.processor(processor)])
// Later
cache.isCached(forKey: cacheKey, processorIdentifier: processor.identifier)
// Retrieve image from cache
cache.retrieveImage(forKey: "cacheKey") { result in
    switch result {
    case .success(let value):
        print(value.cacheType)
        // If the `cacheType is `.none`, `image` will be `nil`.
        print(value.image)
    case .failure(let error):
        print(error)
    }
}
 ไทย