আইওএসে অ্যানিমেটেড জিআইএফ প্রদর্শন করুন


91

আমি লক্ষ করেছি যে iMessage এর সাহায্যে অ্যানিমেটেড gif গুলি এখন প্রেরণ এবং প্রদর্শিত হতে পারে। এর অর্থ কি এই যে অ্যাপল এখন কোনও অ্যাপ্লিকেশনটিতে অ্যানিমেটেড জিআইএফ প্রদর্শনের জন্য সমর্থন করছেন, বা চিত্রটি ফ্রেমে বিভক্ত করার এবং তারপরে ক্রমানুসারে এগুলি প্রদর্শন করার সবচেয়ে সহজ পদ্ধতি? আইওএস 5.1 হিসাবে অ্যানিমেটেড জিআইএফ প্রদর্শন করার সহজতম উপায় কী?

ধন্যবাদ!

উত্তর:


140

আপনি যদি iOS7 টার্গেট করে থাকেন এবং ইতিমধ্যে চিত্রটি ফ্রেমে বিভক্ত করতে পারেন তবে আপনি ব্যবহার করতে পারেন animatedImageNamed:duration:

ধরা যাক আপনি কোনও স্পিনারকে অ্যানিমেট করছেন। আপনার সমস্ত ফ্রেমটিকে প্রজেক্টে অনুলিপি করুন এবং তাদের নাম নীচে দিন:

  • spinner-1.png
  • spinner-2.png
  • spinner-3.png
  • ইত্যাদি ,

তারপরে চিত্রটি তৈরি করুন:

[UIImage animatedImageNamed:@"spinner-" duration:1.0f];

ডক্স থেকে :

এই পদ্ধতিটি নাম প্যারামিটারে সরবরাহিত বেস ফাইল নামের সংখ্যার একটি সিরিজ সংযোজন করে ফাইলগুলির একটি সিরিজ লোড করে। উদাহরণস্বরূপ, যদি নামের প্যারামিটারটির বিষয়বস্তু হিসাবে 'চিত্র' থাকে, তবে এই পদ্ধতিতে 'ইমেজ 0', 'ইমেজ 1' এবং এইভাবে সমস্তভাবে 'ইমেজ 1024' পর্যন্ত ফাইলগুলি থেকে চিত্রগুলি লোড করার চেষ্টা করা হবে। অ্যানিমেটেড ইমেজ অন্তর্ভুক্ত সমস্ত চিত্র একই আকার এবং স্কেল ভাগ করা উচিত।


4
এবং যদি আপনার ফ্রেমে অ্যানিমেশন না থাকে তবে আপনি পূর্বরূপ অ্যাপ্লিকেশনটিতে একটি জিআইএফ খুলতে পারেন এবং কেবল ফ্রেমগুলি টেনে আনতে পারেন। ফ্রেমগুলি .tiff হিসাবে উত্তোলন করা উচিত, সুতরাং এখানে দেখুন: maclife.com/article/howtos/…
André Fratelli

38

আমি নীচের কোডটি ব্যবহার করার পরামর্শ দেব, এটি অনেক বেশি লাইটওয়েট এবং এটিসি এবং নন-এআরসি প্রকল্পের সাথে সামঞ্জস্যপূর্ণ, এটি ইউআইআইমেজভিউতে একটি সাধারণ বিভাগ যুক্ত করেছে:

https://github.com/mayoff/uiimage-from-animated-gif/


4
আপনাকে একাধিক জিআইএফ প্রদর্শন করতে হলে এটি পরামর্শ দেবে না, সত্যিই ধীর গতিতে কাজ করে
iago849

4
খুব বেশি স্মৃতির ব্যবহার
রোমান ট্রুবা

38

ফ্ল্যানিমেটেডআইমেজ আইওএসের জন্য একটি পারফরম্যান্ট ওপেন সোর্স অ্যানিমেটেড জিআইএফ ইঞ্জিন:

  • ডেস্কটপ ব্রাউজারগুলির সাথে তুলনীয় প্লেব্যাক গতির সাথে এক সাথে একাধিক জিআইএফ খেলে
  • সম্মান ভেরিয়েবল ফ্রেম বিলম্ব
  • মেমরির চাপে করুণভাবে আচরণ করে
  • প্রথম প্লেব্যাক লুপের সময় বিলম্ব বা অবরুদ্ধকরণ দূর করে
  • আধুনিক ব্রাউজারগুলি একইভাবে দ্রুত জিআইএফ-এর ফ্রেম বিলম্বকে ব্যাখ্যা করে

এটি একটি ভাল-পরীক্ষিত উপাদান যা আমি ফ্লিপবোর্ডের সমস্ত জিআইএফ পাওয়ার জন্য লিখেছিলাম ।


এই ফ্রেমওয়ার্কটি বর্তমান ফ্রেমের সম্পত্তি ভুল ফিরিয়ে দিচ্ছে! github.com/Flipboard/FLAnimatedImage/issues/222
মো

12

আরেকটি বিকল্প হ'ল UIWebViewঅ্যানিমেটেড জিআইএফ প্রদর্শন করতে একটি ব্যবহার করা । যদি কোনও সার্ভার থেকে জিআইএফ আনতে চলেছে, তবে এটি আনার ক্ষেত্রে যত্ন নেওয়া হবে। এটি স্থানীয় জিআইএফ-এর সাথেও কাজ করে।


ধন্যবাদ এটি ভাল কাজ করে। তবে, প্রথমবারের মতো জিআইএফ ওয়েবভিউতে লোড হওয়ার পরে কিছু পিছিয়ে থাকতে পারে যা অ্যানিমেশনটির 'ধীর গতি' তৈরি করে। আপনার যদি এটি মসৃণ হওয়া প্রয়োজন তবে এই প্রশ্নের উত্তরে ভাগ করে নেওয়া ফ্রেমগুলি আরও ভাল হতে পারে।
হাতুড়ি

4
"আইওএস 8.0 এবং ওএস এক্স 10.10 থেকে শুরু করে, আপনার অ্যাপ্লিকেশনটিতে ওয়েব সামগ্রী যুক্ত করতে ডব্লিউকেউইউভিউ ব্যবহার করুন U ইউআইউইউভিউ ভিউ বা ওয়েবভিউ ব্যবহার করবেন না" " বিকাশকারী.অ্যাপল.
জেসন মুর

4
জিআইএফ প্রদর্শনের জন্য ওয়েবকিট ব্যবহার করা আপনার মুদিগুলি আপনার বাড়িতে পরিবহনের জন্য একটি কার্গো জাহাজ কেনার মতো। ওয়েব দর্শনগুলি খুব ব্যয়বহুল এবং একটি পূর্ণ জাভাস্ক্রিপ্ট এবং রেন্ডারিং ইঞ্জিনের সূচনা প্রয়োজন। আমি ইমেজ ভিউ
সলিউশনটি

8

আইওএস 11 থেকে ফটো ফ্রেমওয়ার্কটি অ্যানিমেটেড জিএফএস প্লেব্যাক যুক্ত করতে দেয়।

নমুনা অ্যাপ্লিকেশনটি এখানে ডাউনলোড করা যাবে

অ্যানিমেটেড জিএফএস প্লেব্যাক সম্পর্কে আরও তথ্য (১৩:৩৫ মিনিট থেকে শুরু): https://developer.apple.com/videos/play/wwdc2017/505/

এখানে চিত্র বর্ণনা লিখুন


আরে @sash নমুনা অ্যাপ্লিকেশনটিতে "অ্যানিমেটেডআইমেজ" শ্রেণি নেই যা আমি আমদানি করছি আরও একটি কাঠামো আছে?
শবরিনাথ পাব্বা

@ShabarinathPabba দেখে মনে হচ্ছে যে নমুনা অ্যাপ্লিকেশন আপডেট করা হয়েছে :(
উত্তরীয়

7
#import <QuickLook/QuickLook.h>
#import "ViewController.h"

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    QLPreviewController *preview = [[QLPreviewController alloc] init];
    preview.dataSource = self;

    [self addChildViewController:preview];
    [self.view addSubview:preview.view];
}

#pragma mark - QLPreviewControllerDataSource

- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)previewController
{
    return 1;
}

- (id)previewController:(QLPreviewController *)previewController previewItemAtIndex:(NSInteger)idx
{
    NSURL *fileURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"myanimated.gif" ofType:nil]];
    return fileURL;
}

@end

স্বল্প স্মৃতি ব্যবহার এবং সহজেই ব্যবহারযোগ্য তবে জিআইএফ খুব ধীর গতিতে খেলে
রোমান ট্রুবা

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.