我如何让 Shotwell 重新生成所有缩略图?

我如何让 Shotwell 重新生成所有缩略图?

由于某种未知原因,我的 Shotwell 中的所有缩略图都丢失了,所有图标都变成了灰色。图像本身都很好,我可以在 Shotwell 中打开它们。

其中只有空文件夹,.shotwell/thumbs/因此看起来缩略图根本没有生成。

我也尝试过重新安装 Shotwell(先清除它),没有任何变化。

我如何让 Shotwell 重新生成所有缩略图?

答案1

这个 shell 脚本将重新生成大小为 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

答案2

Shotwell 重新生成缩略图的简单方法(这是一种解决方法):

  1. 转到您的照片页面。
  2. 编辑->全选
  3. Ctrl+ R(旋转)
  4. 旋转完成后,Ctrl+ Z(撤消)。

这将强制 Shotwell 重新生成所有照片并遵守其为它们存储的任何转换。

正如 phq 提到的,有一个未解决的错误可以修复此问题,因此您不需要此解决方法。在此之前,这是解决此问题的推荐方法。上面发布的脚本将不是尊重变换,这意味着您的缩略图可能看起来不像 Shotwell 中的照片。

答案3

我刚刚用过这个答案中给出了shell脚本,但我有大约 22000 个缩略图需要生成。

因此,这是此脚本的 bash 版本,使用~/.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

答案4

Ubuntu 12.10 上的 Shotwell 版本 0.13.11 缩略图似乎不再位于 .shotwell/thumbs 中,而是位于 .cache/shotwell 中。您可以检查用户是否具有读取缩略图的完整权限。可以访问图片但不能访问缩略图可能会导致缩略图变灰。

相关内容