how to detect corrupted file
frederic chaume
frederic.chaume at gmail.com
Tue Apr 25 08:39:45 BST 2023
Hi Paul
in fact that's normal, the command returns an exception during an
execution, not an error and in DOS I don't know how to redirect such
errors to a file
Now I'm wondering that such exception should also happened during
different execution under digikam and may be such exception are logged
in DB (I'm using sqlite , is there a browser that can be used?) or may
be visible using debug. I know how to set debug option in DK but don't
remember how to get access to the console
Regards
Frederic
Le 20/04/2023 à 09:42, Paul Norman a écrit :
>
> Thanks Fredric.
>
> Your way
>
> %exiv2FullPath% -pp -q "%i" >> results.txt
>
> looks correct—as of course it is,
> but on Windows 10 only yields:
>
> Preview 1: image/jpeg, 320x240 pixels, 13855 bytes
> Preview 1: image/jpeg, 320x240 pixels, 13235 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
> Preview 1: image/jpeg, 176x128 pixels, 40576 bytes
>
> When I use:
>
> del results.txt & for /r %i in (*.jpg *.jpeg *.png *.crw *.dng) do
> %exiv2FullPath% "%i" -pp -q >> results.txt
>
> It is of course ignoring my incorrectly placed options/switches(?)
> -pp -q – and so instead I get the full results set, as if for just:
> %exiv2FullPath% "%i"
> —like:
>
> File name : E:\Digikam\images\Phone\2022
> Apr\OpenCamera\IMG_20201011_191442.jpg
> File size : 2547402 Bytes
> MIME type : image/jpeg
> Image size : 4096 x 3072
> Thumbnail : image/jpeg, 13855 Bytes
> Camera make : motorola
> Camera model : moto g(7) power
> Image timestamp : 2020:10:11 19:14:42
> File number :
> Exposure time : 1/33 s
> Aperture : F2
> Exposure bias :
> Flash : No, auto
> Flash bias :
> Focal length : 3.9 mm
> Subject distance:
> ISO speed : 155
> Exposure mode :
> Metering mode : Center weighted average
> Macro mode :
> Image quality :
> White balance : Auto
> Copyright :
> Exif comment :
>
> etc ...
>
> ... Which is what I thought we needed :-)
> and so why wasn’t aware my placement of the switches/options was
> incorrect.
>
> I have some self corrupted .jpg(s) in my directory tree,
> but I am not seeing them in the above list of the style of:
> %exiv2FullPath% -pp -q "%i" >> results.txt
>
> Preview 1: image/jpeg, 320x240 pixels, 13855 bytes
> ... etc
>
> — And that alos isn't showing me the file path/names of any of them.
>
> Paul
>
>
> On 14/04/2023 10:59 pm, frederic chaume wrote:
>> Hi Paul
>>
>> 1st feedback,
>> syntax of command should be
>> %exiv2FullPath% -pp -q "%i" >> results.txt
>>
>> and seems the >> doens't catch the exception,
>>
>> the exception was missing in the result.txt, but really exist
>>
>> D:\images\test> %exiv2FullPath% -pp -q
>> 2023-02-28\P2280067_DxO-corrupted.jpg
>> Exiv2 exception in print action for file
>> 2023-02-28\P2280067_DxO-corrupted.jpg:
>> 2023-02-28\P2280067_DxO-corrupted.jpg: The file contains data of an
>> unknown image type
>>
>> regards
>> Frederic
>>
>>
>> Le 14/04/2023 à 12:07, frederic chaume a écrit :
>>> Hi Paul
>>>
>>> thanks a lot, that will be very useful, I will test it next week
>>>
>>> Fyi , I got the options from https://exiv2.org/manpage.html
>>>
>>> regards
>>> frederic
>>>
>>>
>>>
>>>
>>> Le 14/04/2023 à 05:54, Paul Norman a écrit :
>>>>
>>>> Hi Bob,
>>>>
>>>> Yes file names passed in that way can have unknown things happening
>>>> behind the scenes :-)
>>>>
>>>> PowerShell can help here, but Dos can still do it effectively and
>>>> quickly, as you are working in it, here are some dos shell command
>>>> lines you could try executing.
>>>> (If you find this working, it could be converted into a batch file,
>>>> once any other needed modifications have been worked out later.
>>>> Note that %-s would need to be changed to %% in a .bat batch file.)
>>>>
>>>> I downloaded a working copy of from exiv2 from
>>>> https://exiv2.org/download.html#license
>>>>
>>>> Looks like you got your option commands from(?):
>>>> https://exiv2.org/sample.html
>>>>
>>>> Locally, open a dos prompt up at the top of the directory tree you
>>>> want to explore.
>>>> If all you can see is PowerShell, then when that opens type :-
>>>>
>>>> cmd <Enter>
>>>>
>>>> Again, make sure you are in the top of the directory tree you want
>>>> to explore.
>>>>
>>>> The overall system PATH does not appear to need alteration, as
>>>> exiv2.exe when called directly, appears to find all that it needs
>>>> locally.
>>>> So first set your exiv2.exe file's full location, change the path
>>>> to fit your setup, using quotes especially if you have any spaces
>>>> in your .exe directory path. :-
>>>>
>>>> set exiv2FullPath="G:\utils\exiv2-0.27.6-2019msvc64\bin\exiv2.exe"
>>>>
>>>> And alter the below to your situation (change the *.exts to
>>>> whatever you need, fewer or more, leaving a space between them):
>>>>
>>>> Then execute each of these lines one after the other :-
>>>>
>>>> del results.txt & for /r %i in (*.jpg *.jpeg *.png *.crw *.dng) do
>>>> %exiv2FullPath% "%i" -pp -q >> results.txt
>>>>
>>>> find ": 0 x 0" results.txt > possible_corrupt.txt
>>>>
>>>> notepad results.txt & notepad possible_corrupt.txt
>>>>
>>>> <-- Try the above first, but if necessary, in the second command
>>>> line above, change ": 0 x 0" to whatever is signifying your corrupt
>>>> file(s) as shown in the file: results.txt. Copy and paste the
>>>> needed text out of results.txt between the "quote marks" as I
>>>> suspect otherwise invisible tabs U+0009 could be being used.
>>>>
>>>> Close the notepads: for results.txt and poss_corrupt.txt - when you
>>>> want to run the command again over the same directory tree.
>>>>
>>>> At worst you can scan though the file: results.txt manually in
>>>> notepad.
>>>>
>>>> N.B.
>>>> Just note that the file: results.txt will get overwritten each
>>>> time you run the main command, so copy or rename it first if you
>>>> want to keep it :-)
>>>>
>>>> Hope that this will help you,
>>>>
>>>> Kindest regards,
>>>> Paul
>>>>
>>>>
>>>> On 14/04/2023 2:16 am, plowmail2010 at gmail.com wrote:
>>>>>
>>>>> Using Windows 7.
>>>>>
>>>>> I could not get wildcards to work in exiv2.
>>>>> The manual says "$ exiv2 *.jpg Prints a summary of the Exif
>>>>> information for all JPEG files in the directory."
>>>>> But that gives me "*.jpg: Failed to open the file".
>>>>>
>>>>> Also, while fiddling with this, the length of exiv2.exe went to
>>>>> 0. Maybe the program got tired of my fiddling, or my computer is
>>>>> about to explode.
>>>>>
>>>>> Bob
>>>>>
>>>>>
>>>>> On 4/13/2023 7:02 AM, frederic chaume wrote:
>>>>>> Hi All
>>>>>>
>>>>>> I found an option using exiv2 under windows
>>>>>>
>>>>>> >bin\exiv2.exe -pp -q P2280067_DxO-corrupted.jpg
>>>>>> Exiv2 exception in print action for file P2280067_DxO-corrupted.jpg:
>>>>>> P2280067_DxO-corrupted.jpg: The file contains data of an unknown
>>>>>> image type
>>>>>>
>>>>>> >bin\exiv2.exe -pp -q P2280067_DxO.jpg
>>>>>> Preview 1: image/jpeg, 317x237 pixels, 17356 bytes
>>>>>>
>>>>>> >bin\exiv2.exe -pp -q .\P2280067.ORF
>>>>>> Preview 1: image/jpeg, 160x120 pixels, 9080 bytes
>>>>>> Preview 2: image/jpeg, 3200x2400 pixels, 1060974 bytes
>>>>>>
>>>>>> I think that could be a good solution to find corrupted jpeg.
>>>>>> Based on this I have some thought
>>>>>> - as exiv2 is native with Digikam, I guess such error could be
>>>>>> visible? *Is there some "debug level" or some logs somewhere that
>>>>>> could report such errors ?*
>>>>>> - I'm not expert on coding so don't know how to translate such
>>>>>> command to a recursive search on a set of folders?
>>>>>> - seems to apply to raw also , but I don't have corrupted raw to
>>>>>> perform the test
>>>>>>
>>>>>> thanks to share your feedbacks and may be other option
>>>>>>
>>>>>> Frederic
>>>>>>
>>>>>>
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/digikam-users/attachments/20230425/c41fc0d3/attachment-0001.htm>
More information about the Digikam-users
mailing list