मैं शॉटवेल को सभी थंबनेल को फिर से बनाने के लिए कैसे करूं?


15

किसी अज्ञात कारण से मेरे शॉटवेल में सभी थंबनेल खो गए हैं, इसके बजाय सभी आइकन ग्रे हैं। चित्र स्वयं सभी ठीक हैं और मैं उन सभी को शॉटवेल में खोल सकता हूं।

केवल खाली फ़ोल्डर हैं, .shotwell/thumbs/इसलिए ऐसा लगता है कि थंबनेल बिल्कुल उत्पन्न नहीं होते हैं।

मैंने बिना किसी बदलाव के शॉटवेल (पहले इसे शुद्ध करके) फिर से स्थापित करने की कोशिश की है।

मैं शॉटवेल को सभी थंबनेल को फिर से बनाने के लिए कैसे करूं?

जवाबों:


14

यह शेल स्क्रिप्ट आपके आकार के थंबनेल को 128px और 360px में पुनर्जीवित करेगी ताकि आपको दर्शक में कम से कम कुछ दिखाई दे।

sqlite3 ~/.local/share/shotwell/data/photo.db \
  "select id||' '||filename from PhotoTable order by timestamp desc" | 
  while read id filename; do
    for size in 128 360; do
      tf=$(printf ~/.cache/shotwell/thumbs/thumbs${size}/thumb%016x.jpg $id);
      test -e "$tf" ||  {
        echo -n "Generating thumb for $filename ($tf)";
        convert "$filename" -auto-orient -thumbnail ${size}x${size} $tf
        echo
      }
    done
  done

अगर आपके पिक्स में एक्साईफ थंबनेल हैं तो आप इस के साथ कन्वर्ट लाइन को बदल सकते हैं:tf_src="$(exiv2 -vf -et "$filename" | grep -o "to file .*" | cut -f3- -d" ")" && mv "$tf_src" $tf
lkp

इस समाधान के साथ समस्या यह है कि उपयोगकर्ता द्वारा फ़ोटो में किए गए कोई भी परिवर्तन - रोटेशन, फ़सल, रंग सुधार - थंबनेल में परिलक्षित नहीं होंगे। Shotwell पूरी तरह से रूपांतरित सभी थंबनेल संग्रहीत करता है।
जिम नेल्सन

यह स्क्रिप्ट मानती है कि आप अपने घरेलू निर्देशिका में सबसे ऊपर हैं, लेकिन अन्यथा एक आकर्षण की तरह काम करता है। धन्यवाद!
Reece

bitbucket.org/reece/reece-base/src/tip/bin/… बिल्ड भी 360x360 अंगूठे बनाता है।
Reece

आजकल, आप केवल हटा सकते हैं ~/.cache/shotwell/thumbs, और शॉटवेल 0.22.x उन्हें आवश्यकतानुसार पुन: उत्पन्न करेगा।
लैंबार्ट

7

शोटवेल के लिए एक आसान तरीका पुनर्जीवित थंबनेल (यह एक समाधान है):

  1. अपने फ़ोटो पृष्ठ पर जाएं।
  2. संपादित करें -> सभी का चयन करें
  3. Ctrl+ R(घुमाएँ)
  4. जब घूर्णन समाप्त हो गया, Ctrl+ Z(पूर्ववत करें)।

यह शॉटवेल को सभी तस्वीरों को फिर से बनाने और उनके लिए संग्रहीत किसी भी परिवर्तनों को सम्मानित करने के लिए मजबूर करेगा।

जैसा कि phq ने उल्लेख किया है, इसे ठीक करने के लिए एक उत्कृष्ट बग है, इसलिए आपको इस समाधान की आवश्यकता नहीं होगी। तब तक, यह इस समस्या को हल करने का अनुशंसित तरीका है। ऊपर पोस्ट की गई स्क्रिप्ट परिवर्तनों का सम्मान नहीं करेगी , जिसका अर्थ है कि आपके थंबनेल के लिए शॉटवेल में आपकी तस्वीरों की तरह नहीं दिखना संभव है।


शॉटवेल 0.13.1 में अभी भी एक साइड नोट जैसा ही है - क्षैतिज फ्लिप थोड़ा तेज परिवर्तन (1500 8mpix फोटो पर परीक्षण किया गया) लगता है।
cprn

5

मैंने इस उत्तर में दी गई शेल स्क्रिप्ट का उपयोग किया है , लेकिन मेरे पास उत्पन्न करने के लिए लगभग 22000 थंबनेल हैं।

तो यहाँ इस स्क्रिप्ट का एक बैश संस्करण है, जिसके ~/.shotwellबजाय ~/.local/shotwell(जो कि मेरे पास है) और मेरे प्रोसेसर के जितने कोर का उपयोग कर रहा है (मेरे मामले में 8 गुना तेज़!)।

#!/bin/bash

# under linux, use this to launch as many convert as your processor core number
#MAX_PROCESSES=`cat /proc/cpuinfo |grep ^processor | wc -l`
# or use a static value
MAX_PROCESSES=4

sqlite3 ~/.shotwell/data/photo.db "select id||' '||filename from PhotoTable order by timestamp desc" | 
  while read id filename; do
      for size in 128 360; do
      tf=$(printf ~/.shotwell/thumbs/thumbs${size}/thumb%016x.jpg $id);
      test -e "$tf" ||  {
              echo "Generating thumb for $filename ($tf)";
              convert "$filename" -auto-orient -thumbnail ${size}x${size} $tf &
          RUNNING="`jobs -p |wc -l`"
          while [ "$RUNNING" -ge "$MAX_PROCESSES" ]
          do
          sleep 0.3
          RUNNING="`jobs -p |wc -l`"
          done
      }
      done
  done

5

मैन्युअल रूप से देखे जाने पर शॉटवेल 0.18 थंबनेल के साथ अपडेट अब उत्पन्न होता है।

.Shotwell / अंगूठे को न निकालें!

लॉन्चपैड में इस बग के अनुसार , थंबनेल केवल आयात पर उत्पन्न होते हैं।

थंबनेल केवल आयात पर उत्पन्न होते हैं। यदि थंबनेल डिस्क से हटा दिए जाते हैं तो वे पुनर्जीवित नहीं होते हैं।


Shotwell 0.22 (यानी, Ubuntu 16.04) के साथ आप बस ~ / .cache / shotwell / अंगूठे हटा सकते हैं, और Shotwell जरूरत के अनुसार उन्हें फिर से तैयार करेगा
लैम्बार्ट

3

Ubuntu 12.10 पर शॉटवेल संस्करण 0.13.11 Thumbnails, .wellwell / अंगूठे में स्थित होने के लिए कोई लंबे समय तक नहीं लगता है, लेकिन अब .cache / शॉटवेल में आप उपयोगकर्ता को अंगूठे पढ़ने के लिए पूरी कठोरता की जांच कर सकते हैं। चित्रों तक पहुँच होना लेकिन अंगूठे का न होना ग्रे अंगूठे का कारण हो सकता है।


आपने अंगूठे को पुन: उत्पन्न करने के बारे में प्रश्न को संबोधित नहीं किया है।
hultqvist

1
@ यदि आप प्रश्न पढ़ चुके हैं, तो आप देखेंगे कि प्रश्न वास्तव में आवश्यक नहीं है कि वास्तव में अंगूठे को पुन: उत्पन्न किया जाए , लेकिन अंगूठे को वापस कैसे लाया जाए जिसके लिए ओपी अंगूठे को गायब कर रहे हैं, और इस प्रकार पुनर्जनन का प्रस्ताव करें जोडना। इस मामले में कि अंगूठे वास्तव में हैं, लेकिन एक अलग फ़ोल्डर में या गलत अनुमति के साथ, यह जवाब वास्तव में हाजिर है। उसके शीर्ष पर, भले ही आप केवल उन उत्तरों को स्वीकार करेंगे जो मूर्खतापूर्ण रूप से केवल प्रश्न के विषय से निपटते हैं, कृपया ध्यान रखें कि यह उत्तर अभी भी एक टिप्पणी के रूप में उपयोगी है (कि phq नहीं कर सका है ..
berdario

... एक सच्ची टिप्पणी के रूप में पोस्ट, उनके कम प्रतिष्ठा स्कोर के कारण)
बेर्डारियो

2

Shotwell 0.28.4 (Braunschweig) कभी-कभी वीडियो थंबनेल नहीं बनाएगा। स्वीकृत उत्तर से प्राप्त निम्न स्क्रिप्ट इसे ठीक करता है:

#!/bin/bash
declare -A default_thumbnail_sizes
declare -A default_thumbnail_checksums
default_thumbnail_sizes[128]="3038"
default_thumbnail_checksums[128]="dc292dd5c9eacadee4fa02c2062d364d8a3a42cb4a58b99abb42dd1950803e4d"
default_thumbnail_sizes[360]="12333"
default_thumbnail_checksums[360]="1f5859761cbbc44f7444b5a61ffd7b2dfe560017d8376905df67db51a4641926"

sqlite3 ~/.local/share/shotwell/data/photo.db \
  "select id||' '||filename from VideoTable" |
  while read id filename
  do
    for size in 128 360
    do
      tf=$(printf ~/.cache/shotwell/thumbs/thumbs${size}/video-%016x.jpg $id);
      exit_code="$?"
      if [[ "$exit_code" != "0" ]]
      then
        echo $id
        continue
      fi

      if [[ -e "$tf" ]]
      then
        tfilelength=$(stat -c '%s' $tf)
        if [[ "$tfilelength" != ${default_thumbnail_sizes[$size]} ]]
        then
          continue
        fi

        tchecksum=$(sha256sum $tf)
        if [[ "$tchecksum" != ${default_thumbnail_checksums[$size]}* ]]
        then
          continue
        fi
      fi

      echo -n "$filename --> $tf";
      ttf=/tmp/$(basename "$tf")
      rm -f "$ttf"
      ffmpeg -i "$filename" -loglevel quiet -vf "thumbnail,scale=${size}:-1" -frames:v 1 "$ttf"
      exit_code="$?"
      if [[ -e "$ttf" && $exit_code == "0" ]]
      then
        echo ": SUCCESS"
        mv -f -v "$ttf" "$tf"
        echo
      else
        echo ": FAILED ($exit_code)"
        echo
      fi
    done
  done


1

संस्करण 0.26.3 के लिए (नवंबर 2017 तक अप-टू-डेट), शॉटवेल बंद होने के साथ, बस थंबनेल हटाएं

  • / घर / user_name /.cache/shotwell/thumbs/thumbs128 और में
  • /घर/ user_name /.cache/shotwell/thumbs/thumbs360

और फिर से शॉटवेल को आग लगा दी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.