দুর্নীতির জন্য গ্রাফিক্স ফাইলগুলির স্ক্যান স্বয়ংক্রিয় করা


27

কেউ কি দুর্নীতির জন্য গ্রাফিক্স ফাইলগুলি (বিশেষত জেপিইজি, জিআইএফ, এবং পিএনজি) চেক করার কোনও উপায় জানেন (পছন্দমত একটি স্বয়ংক্রিয় পদ্ধতিতে)?


ব্যাখ্যা:

কিছু দিন আগে, একটি কমান্ড ভুলভাবে কাজ করেছিল এবং হাজার হাজার গ্রাফিক্স ফাইলকে FAT32 ভলিউম থেকে ডিলিট করে শেষ করেছিল যা কার্যত স্থানের বাইরে ছিল। আমি বেশ কয়েকটি পৃথক ফাইল / ফটো-পুনরুদ্ধার প্রোগ্রাম ব্যবহার করেছি, তবে স্বাভাবিকভাবেই তারা কতটা পুনরুদ্ধার করতে পারে তা সীমাবদ্ধ (যদিও ভাগ্যক্রমে ভলিউমের 8KB ক্লাস্টার রয়েছে যা কিছুটা সহায়তা করে)।

যাইহোক, বড় আকারের কিছু ফাইল, যা খণ্ডিত ছিল, এখন তা দুর্নীতিগ্রস্থ। তাদের মধ্যে কিছু এমনকি একেবারে আসল ফাইলও নয় (পুনরুদ্ধার সফ্টওয়্যার কেবল ক্লাস্টারগুলিকে ফেলে দেয় যা এখন-ওভাররাইট করা ডিরেক্টরি এন্ট্রি দ্বারা চিহ্নিত করা হয়েছিল), অন্যরা খণ্ডিত হওয়ার কারণে ভেঙে গেছে।

তদুপরি, কিছু চিত্র বিন্যাস থাম্বনেল হিসাবে ছবির একটি ছোট সংস্করণ এম্বেড করে, দুর্নীতির জন্য থাম্বনেইলগুলি স্ক্যান করা নির্ভরযোগ্য নয় কারণ এটি প্রকৃত ফাইল (অর্থাত্, চিত্রটি যখন পূর্ণ আকারে দেখা যায়) দূষিত হতে পারে।


এখানে উদাহরণ তুলে ধরা হলো:

দ্বিতীয়টি এখানে। এটি এতটাই ক্ষতিগ্রস্ত হয়েছে যে এটি কিছুই প্রদর্শন করে না।

ক্ষতিগ্রস্থ চিত্র

(তৃতীয়টি আপলোড করবে না কারণ এটিতে সঠিক শিরোনাম নেই!)


আপনি ভিজ্যুয়াল দুর্নীতি বলতে চাইছেন? আমি এটি পছন্দ করতাম ... অবশেষে আমি ভাঙ্গা jpgs এর জন্য আমার কমিক বইয়ের থাম্বনেইলগুলি বন্ধ করতে পারতাম।
শিনরাই

ভিজ্যুয়াল বা কাঠামোগত। আমি একটি অ্যাপ পেয়েছি যা সম্ভবত এটি করা হয়েছিল, তবে এতে প্রচুর ফাইল মিস হয়েছে যা এমনকি শিরোনামটি নেই !
সিনিটেক

ওহ, সেই জিনিসটি আমার কাছে ঘটেনি। হ্যাঁ, দয়া করে ... এটি এখানে কিছু আছে?
শিনরাই

1
আপনি কি এই জাতীয় কোনও ভাঙা ফাইলের এক বা একাধিক উদাহরণ আপলোড করতে পারেন এবং আপনার প্রশ্নের সাথে তাদের লিঙ্ক করতে পারেন?
slhck

@ শনরাই, থাম্বনেলগুলি পরীক্ষা করা নির্ভরযোগ্য নয় কারণ অনেকগুলি চিত্রের বিন্যাসে ছবিতে এমবেড করা একটি পৃথক থাম্বনেল সংস্করণ অন্তর্ভুক্ত থাকে এবং এটি অক্ষত থাকতে পারে। এ কারণেই কখনও কখনও এমন একটি ছবি খোলা হয় যাঁর থাম্বনেইল সূক্ষ্ম দেখায় corrupt
Synetech

উত্তর:


12

যেহেতু আমি একই প্রশ্নের উত্তর দেওয়ার চেষ্টা করতে গিয়ে এই হোঁচট খেয়েছি আমি আরও একটি দুর্দান্ত সমাধান যুক্ত করেছিলাম:

খারাপ পেগি

অ্যাপ্লিকেশন এর স্ক্রিনশট

ব্যবহার
মেনু থেকে নির্বাচন করুন File > Scanএবং তারপরে চিত্রগুলি যে ফোল্ডারে রয়েছে সেটিতে ব্রাউজ করতে ফাইল ডায়ালগটি ব্যবহার করুন। প্রোগ্রামটি তখন চিত্রগুলির (.jpg, .png, .bmp, .gif) ফোল্ডার এবং সমস্ত সাবফোল্ডারগুলি স্ক্যান করা শুরু করবে। আপনি যদি প্রচুর ছবি স্ক্যান করতে চান তবে এতে কিছুটা সময় লাগবে, কারণ প্রোগ্রামটির পুরোপুরি ইমেজ ফাইলটি লোড করা এবং পার্স করা দরকার, তাই আপনি এটি রাতারাতি চালিয়ে যেতে চাইতে পারেন।

এটি স্ক্যান করার সময় এটি স্ট্যাটাস বারে একটি অগ্রগতি শতাংশ দেখায়। এটি নিখুঁত নয় এমন কোনও চিত্র সরাসরি তালিকায় প্রদর্শিত হবে। আপনি যদি তালিকার কোনও চিত্র ক্লিক করেন তবে এটি চিত্রটি কেমন দেখাচ্ছে তার পূর্বরূপ দেখায়। বেশিরভাগ ক্ষেত্রে একটি ফাইলের মধ্যে ফাইল ফর্ম্যাটটি কেবল একটি ছোটখাটো সমস্যা থাকে এবং চিত্রটি এখনও ঠিক সূক্ষ্ম দেখাবে। অন্যান্য সময়ে চিত্রটি মোটেও রেন্ডার হবে না এবং পূর্বরূপটি কেবল কালো হবে। কখনও কখনও চিত্রটি ক্ষতিগ্রস্থ হয়ে যায় এবং আপনি উপরের স্ক্রিনশটে এমন কিছু দেখতে পাবেন।

কলামের শিরোনামটিতে একটি খুব সহজ কৌশল ক্লিক করা হয়েছে Reasonএবং চিত্রগুলি সেগুলি যেভাবে ক্ষতিগ্রস্থ হয়েছে তার অনুসারে বাছাই করা হবে (উদাহরণস্বরূপ যে সমস্ত খারাপ ফাইল ফর্ম্যাটগুলি এখনও সঠিকভাবে রেন্ডার হয় নীচে চলে যাবে আপনাকে আরও গুরুতর ক্ষেত্রে ফোকাস করতে দিচ্ছে) ।

এছাড়াও যদি প্রথম স্ক্যানটি শেষ হয়ে যায় এবং আপনি অন্য স্ক্যান শুরু করেন তবে ফলাফলগুলি কেবল তালিকায় যুক্ত হবে। সুতরাং আপনার যদি চিত্রগুলির সাথে অনেকগুলি আলাদা ফোল্ডার থাকে তবে আপনি নতুন স্ক্যান শুরু করার পরে তালিকাটি ক্লিয়ার না করেই কেবল সেগুলি ক্রমিকভাবে স্ক্যান করতে পারেন। আপনি যদি তালিকাটি সাফ করতে চান তবে প্রসঙ্গ মেনুটি ব্যবহার করুন এবং ক্লিক করুন Clear list


উইন্ডোজ, লিনাক্স এবং ওএস এক্সের জন্য লিঙ্ক ডাউনলোডগুলি এখানে পাওয়া যাবে:
https://www.coderslagoon.com

উত্স কোডটি এখানে:
https://github.com/llaith/BadPeggy


ঠিক করার জন্য ধন্যবাদ। আমি সামান্য ব্যবহারের তথ্য যুক্ত করেছি (যদিও প্রোগ্রামটি খুব স্ব-বর্ণনামূলক)।
পল

উত্স কোডের লিঙ্কটি নষ্ট হয়ে গেছে।
নিকোলাস রাউল

9

ব্যবহার করে দেখুন jpeginfo ' -c' আপনার কোন JPEG ফাইল বিকল্প।

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

আরো দেখুন ফাইল ইন্টিগ্রিটি চেক মধ্যে একটি মৌলিক ভূমিকা পিএনজি বৈশিষ্ট্য

আপনি এই স্ট্যাকওভারফ্লো প্রশ্নটিতে আগ্রহী হতে পারেন,
আমি কোনও প্রোগ্রাম (পিএনজি, জেপিজি, বা জিআইএফ) দূষিত কিনা প্রোগ্রামিয়ালি কীভাবে পরীক্ষা করব ?


আপডেট : উত্স tarball রূপে জন্য সংস্করণ 1.6.1 দ্বারা টিমো Kokkonen
আপনার মেশিনের জন্য বাইনারি তৈরি করতে সক্ষম হওয়া উচিত।


দুর্ভাগ্যক্রমে, আমি কোনও উইন্ডোজ পোর্ট পাই না।
সিনিটেক

jpeginfo ওপেন সোর্স; আপনার সিস্টেমে টার্বল পাওয়া এবং এটি সংকলন করতে সক্ষম হওয়া উচিত (সম্ভবত সাইগউইনের সাথে যা লিবিজেপেগ রয়েছে)।
নিক

এটি যেভাবেই চলবে না, কারণ আমার পাশাপাশি কমপক্ষে জিআইএফ এবং পিএনজিও স্ক্যান করা দরকার।
সিনিটেক

1
@nik - অক্স ডিরেক্টরি, যা জেপিগেনফো এর টারবাল অংশ, উইন্ডোজে সেই নামে তৈরি করা যায় না, এটি উইন্ডোজের অধীনে এক্সট্র্যাক্ট করা খুব কঠিন করে তোলে, এটি কেবল কম নির্মাণ করে না। আপনি কি এটি উইন্ডোজের আওতায় তৈরি করতে পেরেছেন?
দাড়কাক

jpeginfo -c *.JPG | ag (WARNING|ERROR)আমার জন্য কাজ করেছেন
সেলরন্ড

3

চিত্রম্যাগিকের শনাক্তকরণ প্রোগ্রামটি যদি কোনও চিত্র দূষিত হয় তবে আপনাকে জানাতে দেবে। সনাক্তকরণের জন্য নো -0 রিটার্ন কোডের জন্য লুপ পরীক্ষার জন্য 'আই ইন ফাইন্ড' আপনাকে ক্ষতিগ্রস্থ বা দূষিত ফাইলের একটি তালিকা ডাম্প করতে খুব সহজেই স্ক্রিপ্ট স্ক্রিপ্ট করতে দেয়। এটি পাওয়ারশেলের সাথে উইন্ডোজেও কাজ করে।

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

আপনার পথের পরিবর্তনগুলির সাথে নিম্নলিখিত কোডটি পাওয়ারশেলের ক্ষেত্রে ভালভাবে কাজ করে

$stream = [System.IO.StreamWriter] "corrupt_jpegs.txt" 
get-childitem "c:\" -include *.jpg -recurse | foreach ($_) { 
    & "C:\Program Files\ImageMagick-6.7.1-Q16\identify.exe" $_.fullname > $null 
    if($LastExitCode -ne 0){ 
        $stream.writeline($_.fullname) 
    } 
} 
$stream.close()

আমি কিছুক্ষণের মধ্যে ইমেজম্যাগিক ব্যবহার করি নি (এটি সর্বশেষে চেষ্টা করার সময় বাগগুলি পেয়েছিল) তবে আমি এটিতে সন্ধান করব। পরামর্শের জন্য ধন্যবাদ.
Synetech

1
দর্শকের সরঞ্জামটি এখনও বগি, তবে একই ধরণের সমস্যার সাথে আমার পক্ষে দুর্দান্ত কাজ করেছে identify দূষিত এবং 0 দৈর্ঘ্যের চিত্রের ফাইলগুলির তালিকা পেতে আমি এই জাতীয় একটি পাওয়ারশেল স্ক্রিপ্ট ব্যবহার করেছি।
ওল্ড ওল্ফ

@ সিনিটেক ইনক দুঃখিত, কোনও ছবি এতে পোস্ট করা হওয়ায় ফর্ম্যাট কোড সহ মূল পোস্টটি আপডেট করতে পারছে না এবং আমি এটি সুন্দরভাবে ফর্ম্যাট করতেও পারছি না। নমুনা পাওয়ারশেল লিপি: (আপনার পাথগুলি, ফাইলের প্রকারগুলি ঠিক করুন ইত্যাদি ..) $ স্ট্রিম = [সিস্টেম.আইও.স্ট্রিম রাইটার] "দুর্নীতিগ্রহী_প্রেম.একটিএসটি" গেট-চাইল্ডাইটেম "সি: \" - অন্তর্ভুক্ত * .jpg -recurse | foreach ($ _) {& "C: \ প্রোগ্রাম ফাইলগুলি \ চিত্রম্যাগিক -ick. 6..১-কিউ ১\ \ পরিচয়.এক্সে" $ _। পূর্ণ নাম> ull নাল যদি ($ লাস্টএক্সিটকোড -ne 0) $। stream.writline ($ _। পুরো নাম)}} $ stream.close ()
ওল্ড ওল্ফ

1
কমান্ড লাইন থেকে, identifyদূষিত জেপিজি ডেটা প্রদর্শন করতে পারে -verbose, সাধারণত এটি প্রদর্শিত হয় না।
কেনারব

3

পাইথন ইমেজিং লাইব্রেরির .verify()কমান্ড ব্যবহার করে এটি করা যেতে পারে । [1]

উইন্ডোজ এ চালানোর জন্য, পাইথন ইনস্টল করুন (আমি পাইথন 2 এর সর্বশেষতম রিলিজ ইনস্টল করেছি) এবং তারপরে বালিশ (পাইথন ইমেজিং লাইব্রেরির একটি কাঁটাচামচ (পিআইএল)) ইনস্টল করুন । তারপরে, jpeg_corpt.py [2] এর কোডটি অনুলিপি করুন এবং এর বিষয়বস্তুগুলি একটি .PY ফাইলে সংরক্ষণ করুন, যেমন jpeg_corpt.py।

লক্ষ্য করুন আমি কোডের নিম্নলিখিত লাইন পরিবর্তিত jpeg_corrupt.py :
self.globs = ['*.jpg', '*.jpe', '*.jpeg']
থেকে
self.globs = ['*.jpg', '*.jpe', '*.jpeg', '*.png', '*.gif']
এই এত .PNG এবং .GIF ফাইল খুব স্ক্যান করা হবে।

এরপরে এটি উইন্ডোজ কমান্ড প্রম্পট (cmd.exe) এর মাধ্যমে কার্যকর করা যেতে পারে: C:\Python27\python.exe "C:\Directory containing the .PY file\jpeg_corrupt.py" "C:\Directory of folder to be scanned"

' সি: \ পাইথন 27 \ পাইথন.এক্সই ' কমান্ডের প্রথম অংশটি পাইথনের কোন সংস্করণ আপনি ইনস্টল করেছেন এবং কোন ডিরেক্টরিতে আপনি এটি ইনস্টল করেছেন তার উপর নির্ভর করে ভিন্ন হতে পারে। আমার উদাহরণে এটি পাইথন ২.7 এর ডিফল্ট ইনস্টলেশন ডিরেক্টরি।

এটি নির্দিষ্ট ডিরেক্টরি এবং এর সমস্ত উপ-ডিরেক্টরিতে সমস্ত জেপিজি, জিআইএফ এবং পিএনজি চিত্রগুলি স্ক্যান করবে। এটি কোনও দূষিত চিত্র ফাইল সনাক্ত করে তবে এটি একটি আউটপুট প্রদর্শন করবে।

আমি ওপি এর নমুনা চিত্র এই দৌড়ে এবং এটি এই ত্রুটির বার্তা দিয়েছেন: ...\YcB9n.png: string index out of range

কোডটি একটি .BAT স্ক্রিপ্ট ফাইলটিতেও প্রবেশ করা যেতে পারে, সুতরাং আপনি সহজেই কমান্ড প্রম্পটটি ব্যবহার না করেই এটি একটি নির্দিষ্ট ডিরেক্টরি চালাতে পারেন:

C:\Python27\python.exe "C:\Directory containing the .PY file\jpeg_corrupt.py" "%CD%"
pause



সূত্র:

[1]: স্ট্যাক ওভারফ্লোতে উত্তর - "কোনও চিত্র (পিএনজি, জেপিজি, বা জিআইএফ) ক্ষতিগ্রস্থ হয়েছে কিনা তা আমি প্রোগ্রামগতভাবে কীভাবে পরীক্ষা করব?" ক্রিস্টোফিড দ্বারা
[২]: ডেনিলসন সা.-এর মন্তব্যটি যুক্ত হয়েছে এর উত্তরটিতে [1]


4
আমি jpg ফাইলের কিছু অংশ এলোমেলোভাবে মুছলাম - স্ক্রিপ্টটি কিছুই দেখায় নি। এটি কেবলমাত্র সবচেয়ে খারাপ ক্ষেত্রে ত্রুটিগুলি সনাক্ত করে - যখন শিরোনাম সম্পূর্ণরূপে মিস হয়ে যায় ... উদাহরণস্বরূপ
পাভেল ভ্লাসভ

হুবহু, একই jpeginfo জন্য যায়।
wp78de

2

ওপাল যা চেয়েছিল ঠিক তাই করার জন্য আমি গ্যালাকটিকনিঞ্জার উত্তর থেকে কোডটি পরিবর্তন করেছি । এটি একইভাবে চালানো হয়, তবে এটি C:\কমান্ড প্রম্পটে চিত্রগুলি তালিকাভুক্ত না করে মূল ডিরেক্টরিতে ফাইলগুলি একটি ক্যাচ ফোল্ডারে স্থানান্তরিত করে ।

আপনি পেস্টবিনে বা নীচে আমার সংশোধিত কোডটি পেতে পারেন :

#This program will scan a directory and all it's subdirectories for corrupted jpg, png, gif, and bmp images and collect them in a Catch folder

#To run this program you will need to install Python 2.7 and PILLOW
#Once installed save this file in a notepad document with the .py extension
#Than run cmd.exe and type the following: C:\Python27\python.exe "C:\Directory this is saved in\this.py" "C:\Directory to be scanned"
#You must make a folder called Catch in your root C:\ directory for the corrupted images to be collected in


#!/usr/bin/env python2
# -*- coding: utf-8 -*-
# vi:ts=4 sw=4 et

# Okay, this code is a bit ugly, with a few "anti-patterns" and "code smell".
# But it works and I don't want to refactor it *right now*.

# TODO:
#  * Refactor it a little
#  * Add support for custom filename filter (instead of the hardcoded one)

#Big thanks to denilsonsa for writing most of this code at https://bitbucket.org/denilsonsa/small_scripts/src/542edd54d290d476603e939027ca654b25487d85/jpeg_corrupt.py?at=default


import getopt
import fnmatch
import re
import os
import os.path
import sys
import PIL.Image


available_parameters = [
    ("h", "help", "Print help"),
    ("v", "verbose", "Also print clean files"),
]


class ProgramOptions(object):
    """Holds the program options, after they are parsed by parse_options()"""

    def __init__(self):
        self.globs = ['*.jpg', '*.jpe', '*.jpeg', '*.gif', '*.png', '*.bmp']
        self.glob_re = re.compile('|'.join(
            fnmatch.translate(g) for g in self.globs
        ), re.IGNORECASE)

        self.verbose = False
        self.args = []


def print_help():
    global opt
    scriptname = os.path.basename(sys.argv[0])
    print "Usage: {0} [options] files_or_directories".format(scriptname)
    print "Recursively checks for corrupt image files"
    print ""
    print "Options:"
    long_length = 2 + max(len(long) for x,long,y in available_parameters)
    for short, long, desc in available_parameters:
        if short and long:
            comma = ", "
        else:
            comma = "  "

        if short == "":
            short = "  "
        else:
            short = "-" + short[0]

        if long:
            long = "--" + long

        print "  {0}{1}{2:{3}}  {4}".format(short,comma,long,long_length, desc)

    print ""
    print "Currently (it is hardcoded), it only checks for these files:"
    print "  " + " ".join(opt.globs)


def parse_options(argv, opt):
    """argv should be sys.argv[1:]
    opt should be an instance of ProgramOptions()"""

    try:
        opts, args = getopt.getopt(
            argv,
            "".join(short for short,x,y in available_parameters),
            [long for x,long,y in available_parameters]
        )
    except getopt.GetoptError as e:
        print str(e)
        print "Use --help for usage instructions."
        sys.exit(2)

    for o,v in opts:
        if o in ("-h", "--help"):
            print_help()
            sys.exit(0)
        elif o in ("-v", "--verbose"):
            opt.verbose = True
        else:
            print "Invalid parameter: {0}".format(o)
            print "Use --help for usage instructions."
            sys.exit(2)

    opt.args = args
    if len(args) == 0:
        print "Missing filename"
        print "Use --help for usage instructions."
        sys.exit(2)


def is_corrupt(imagefile):
    """Returns None if the file is okay, returns an error string if the file is corrupt."""
    #http://stackoverflow.com/questions/1401527/how-do-i-programmatically-check-whether-an-image-png-jpeg-or-gif-is-corrupted/1401565#1401565
    try:
        im = PIL.Image.open(imagefile)
        im.verify()
    except Exception as e:
        return str(e)
    return None


def check_files(files):
    """Receives a list of files and check each one."""
    global opt
    i = 0
    for f in files:
        # Filtering JPEG, GIF, PNG, and BMP images
        i=i+1
        if opt.glob_re.match(f):
            status = is_corrupt(f)
            if opt.verbose and status is None:
                status = "Ok"
            if status:
                file = "{0}".format(f, status)
                print file
                shorthand = file.rsplit('\\', 1)
                extention =shorthand[1]
                fullFileName = "C:\Catch" + "\\" + extention
                os.rename(file, fullFileName)


def main():
    global opt
    opt = ProgramOptions()
    parse_options(sys.argv[1:], opt)

    for pathname in opt.args:
        if os.path.isfile(pathname):
            check_files([pathname])
        elif os.path.isdir(pathname):
            for dirpath, dirnames, filenames in os.walk(pathname):
                check_files(os.path.join(dirpath, f) for f in filenames)
        else:
            print "ERROR: '{0}' is neither a file or a dir.".format(pathname)


if __name__ == "__main__":
    main()

2

ইমেজম্যাগিক ইনস্টল করুন, আপনি ম্যাকে থাকলে আপনি হোমব্রিউ ব্যবহার করতে পারেন।

brew update && brew install imagemagick

তারপরে আপনি এই ছোট পাইথন স্ক্রিপ্টটি ব্যবহার করতে পারেন।

import os
from subprocess import Popen, PIPE

def checkImage(fn):
    proc = Popen(['identify', '-verbose', fn], stdout=PIPE, stderr=PIPE)
    out, err = proc.communicate()
    exitcode = proc.returncode

    return exitcode, out, err

for directory, subdirectories, files in os.walk('/Your/Path/To/Files/'):
    for file in files:
        filePath = os.path.join(directory, file)
        code, output, error = checkImage(filePath)
        if code != 0 or error != '':
            print(str(code)+' '+error)
            #os.remove(filePath)

/Your/Path/To/Files/আপনি যদি দূষিত চিত্রগুলি মুছতে চান তবে সর্বশেষ লাইনটি প্রতিস্থাপন করুন এবং অবিরাম করুন।


1

identifyইমেজম্যাগিক প্যাকেজ থেকে ব্যবহার করুন ।

উদাহরণ উদাহরণ:

identify -verbose -regard-warnings my_file.jpg >/dev/null && echo File is OK. || echo File is corrupted.

এবং নিম্নলিখিত কমান্ডটি বর্তমান ফোল্ডারে থাকা সমস্ত দূষিত জেপিইজি ফাইলগুলি সনাক্ত করতে পারে:

find . -name \*.jpg -exec identify -verbose -regard-warnings {} >/dev/null "+"

0

আপনি যদি পার্ল ইনস্টল করে থাকেন তবে আপনি এই স্ক্রিপ্টটি ব্যবহার করতে পারেন। স্ক্রিপ্টটি চালানোর আগে আপনাকে f.txt চেক করতে ফাইলগুলির তালিকা সংরক্ষণ করতে হবে। আপনি ইরফানভিউ ব্যবহার করে এই তালিকা তৈরি করতে পারেন। (সাব-ফোল্ডারগুলি থেকে সমস্ত থাম্ব লোড করুন এবং txt এ সংরক্ষণ করুন)। ভাল ফাইলগুলির তালিকা Okf.txt এ সংরক্ষণ করা হয় এবং কলুষিত ফাইলগুলি Breakf.txt এ তালিকাভুক্ত হয়।

=====================

use Image::Magick;

open(BROKEN, ">>brokenf.txt");  # Open for appending
open(OK, ">>okf.txt");  # Open for appending
$list='f.txt';          
open(TOSORT, $list) or die("Could not open  file."); 
foreach $pic (<TOSORT>)  {     
    chomp($pic);   
    $p = new Image::Magick;
    $s = 0;    
    $error = $p->Read($pic);
        if ($error) {print BROKEN $pic . "\n";
                   }     
           else {
                  print OK $pic . "\n"; 
                }  
    }
close(TOSORT);
close(BROKEN);
close(OK);
    }

close(TOSORT);
close(BROKEN);
close(OK);

0

আমার ওপেন সোর্স পাইহটন স্ক্রিপ্ট চেক-মিডিয়া-অখণ্ডতা চিত্রগুলির ভিডিও এবং অডিও ফাইলগুলির অখণ্ডতা পরীক্ষা করে। ফাইলগুলি ডিকোডিংয়ের চেষ্টা করার জন্য এটি বালিশ মডিউল, ইমেজম্যাগিক এবং এফএফএমপিগ র‍্যাপার ব্যবহার করে।

বালিশ ইমেজ.ভেরিফাই সমস্ত ত্রুটিগুলি দেখতে পাবে না (যেমন, কাটাকে উপেক্ষা করে) আমি ইমেজ / ডিকোড + ম্যানিপুলেশনও করেছিলাম।


0

এই ব্লগ পোস্টে পাঁচটি সরঞ্জামের তালিকাভুক্ত করা হয়েছে যা ক্ষতিগ্রস্থ চিত্র ফাইলগুলি (সনাক্ত এবং) মেরামত করতে পারে can তাদের মধ্যে কেবলমাত্র বিনামূল্যে একটি ফাইল মেরামত ২.১।

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