ฉันจะทำให้ Shotwell สร้างภาพขนาดย่อทั้งหมดใหม่ได้อย่างไร


15

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

มีโฟลเดอร์ที่ว่างเปล่าเท่านั้น.shotwell/thumbs/จึงดูเหมือนว่ารูปขนาดย่อจะไม่ถูกสร้างขึ้นเลย

ฉันได้ลองติดตั้ง Shotwell อีกครั้ง (โดยล้างมันก่อน) โดยไม่มีการเปลี่ยนแปลงใด ๆ

ฉันจะทำให้ Shotwell สร้างภาพขนาดย่อทั้งหมดใหม่ได้อย่างไร

คำตอบ:


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

หากรูปภาพของคุณมีภาพขนาดย่อ exif คุณสามารถแทนที่การแปลงบรรทัดด้วย:tf_src="$(exiv2 -vf -et "$filename" | grep -o "to file .*" | cut -f3- -d" ")" && mv "$tf_src" $tf
lkp

ปัญหาเกี่ยวกับการแก้ปัญหานี้คือการเปลี่ยนแปลงใด ๆ ที่ผู้ใช้ทำกับรูปถ่าย - การหมุน, การครอบตัด, การแก้ไขสี - จะไม่ปรากฏในภาพขนาดย่อ Shotwell เก็บรูปขนาดย่อทั้งหมดที่เปลี่ยนไปอย่างสมบูรณ์
จิมเนลสัน

สคริปต์นี้จะถือว่าคุณอยู่ในอันดับต้น ๆ ของไดเรกทอรีหลักของคุณ ขอบคุณ!
รีซ

bitbucket.org/reece/reece-base/src/tip/bin/…บิวด์ยังสร้าง thumbs 360x360 อีกด้วย
Reece

ทุกวันนี้คุณสามารถลบได้~/.cache/shotwell/thumbsแล้ว Shotwell 0.22.x จะสร้างใหม่ตามต้องการ
Lambart

7

วิธีที่ง่ายสำหรับ Shotwell ในการสร้างภาพขนาดย่อ (นี่เป็นวิธีแก้ปัญหา):

  1. ไปที่หน้ารูปถ่ายของคุณ
  2. แก้ไข -> เลือกทั้งหมด
  3. Ctrl+ R(หมุน)
  4. เมื่อหมุนเสร็จแล้วCtrl+ Z(เลิกทำ)

วิธีนี้จะทำให้ Shotwell สร้างรูปภาพใหม่ทั้งหมดและให้เกียรติการเปลี่ยนแปลงใด ๆ ที่เก็บไว้สำหรับพวกเขา

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


ทราบเพียงเล็กน้อยเนื่องจากยังคงเหมือนเดิมใน Shotwell 0.13.1 - การพลิกในแนวนอนดูเหมือนว่าจะเป็นการแปลงที่เร็วขึ้นเล็กน้อย (ทดสอบกับภาพถ่ายขนาด 1500 8mpix จำนวน 1,500 ภาพ)
cprn

5

ฉันเพิ่งใช้เชลล์สคริปต์ที่ให้ไว้ในคำตอบนี้แต่ฉันมีรูปขนาดย่อประมาณ 22,000 รูปที่จะสร้าง

ดังนั้นนี่คือเวอร์ชั่นทุบตีของสคริปต์นี้ใช้~/.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

อัปเดต ด้วย shotwell 0.18 รูปขนาดย่อจะถูกสร้างขึ้นเมื่อดูด้วยตนเอง

อย่าลบ. shotwell / thumbs!

ตามข้อผิดพลาดนี้ใน launchpad รูปขนาดย่อจะถูกสร้างขึ้นเมื่อนำเข้าเท่านั้น

รูปขนาดย่อจะถูกสร้างขึ้นที่นำเข้าเท่านั้น หากภาพขนาดย่อจะถูกลบออกจากดิสก์พวกเขาจะไม่สร้างใหม่


ด้วย Shotwell 0.22 (เช่น Ubuntu 16.04) คุณสามารถลบ ~ / .cache / shotwell / thumbs และ Shotwell จะสร้างใหม่ตามที่ต้องการ
Lambart

3

Shotwell เวอร์ชั่น 0.13.11 บน Ubuntu 12.10 รูปขนาดย่อดูเหมือนจะไม่อยู่ใน. shotwell / thumbs แต่ตอนนี้อยู่ใน. cache / shotwell คุณสามารถตรวจสอบว่าผู้ใช้มีความแม่นยำเต็มที่ในการอ่าน thumbs การเข้าถึงรูปภาพ แต่ไม่ใช้นิ้วหัวแม่มืออาจทำให้นิ้วหัวแม่มือสีเทา


คุณยังไม่ได้ตอบคำถามเกี่ยวกับการสร้างนิ้วหัวแม่มือใหม่
hultqvist

1
@phq หากคุณได้อ่านคำถามคุณจะเห็นว่าคำถามนั้นไม่จำเป็นที่จะต้องสร้าง thubs ขึ้นมาใหม่ แต่จะทำอย่างไรจึงจะได้นิ้วโป้งกลับมาซึ่ง OP ตั้งสมมติฐานนิ้วโป้งหายไปดังนั้นจึงเสนอให้การสร้างใหม่เป็น การแก้ไข ในกรณีที่นิ้วหัวแม่มืออยู่ที่นั่นจริง ๆ แต่ในโฟลเดอร์อื่นหรือด้วยการอนุญาตที่ผิดคำตอบนี้จะปรากฏขึ้นจริง ยิ่งไปกว่านั้นแม้ว่าคุณจะยอมรับเฉพาะคำตอบที่โง่เพียงจัดการกับเรื่องของคำถามเท่านั้นโปรดจำไว้ว่าคำตอบนี้ยังมีประโยชน์ในฐานะเป็นความคิดเห็น (phq นั้นไม่สามารถ ..
berdario

... โพสต์เป็นความคิดเห็นที่แท้จริงเนื่องจากชื่อเสียงของเขาต่ำคะแนน)
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) เมื่อปิด Shotwell เพียงลบรูปขนาดย่อใน

  • / home / user_name /.cache/shotwell/thumbs/thumbs128 และใน
  • / home / user_name /.cache/shotwell/thumbs/thumbs360

และดับไฟ Shotwell อีกครั้ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.