immich icon indicating copy to clipboard operation
immich copied to clipboard

Zoom snapping on image load in mobile app

Open Seon82 opened this issue 10 months ago • 6 comments

The bug

In the mobile app, if you zoom in on a lower-res preview of an image, the view snaps to another region of the image when the full-scale image loads.

I assume the transformation would need to be recalculated to account for the new image dimensions.

The bug is demonstrated below, with the snapping happening at 0:05.

https://github.com/immich-app/immich/assets/46298009/80b1fe77-254a-4efe-bb96-959814eca323

The OS that Immich Server is running on

Debian 12

Version of Immich Server

v1.101.0

Version of Immich Mobile App

v.1.101.0 build.131, on android

Platform with the issue

  • [ ] Server
  • [ ] Web
  • [X] Mobile

Your docker-compose.yml content

#
# WARNING: Make sure to use the docker-compose.yml of the current release:
#
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
#
# The compose file on main may not be compatible with the latest release.
#

name: immich

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    command: ['start.sh', 'immich']
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
#    ports:
#      - 2283:3001
    depends_on:
      - redis
      - database
    restart: unless-stopped
    networks:
      - caddy_net
      - default

  immich-microservices:
    container_name: immich_microservices
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/hardware-transcoding
      file: hwaccel.transcoding.yml
      service: quicksync # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
    command: ['start.sh', 'microservices']
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    depends_on:
      - redis
      - database
    restart: always

  immich-machine-learning:
    container_name: immich_machine_learning
    # For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag.
    # Example tag: ${IMMICH_VERSION:-release}-cuda
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
     file: hwaccel.ml.yml
     service: openvino # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    restart: always

  redis:
    container_name: immich_redis
    image: registry.hub.docker.com/library/redis:6.2-alpine@sha256:51d6c56749a4243096327e3fb964a48ed92254357108449cb6e23999c37773c5
    restart: always

  database:
    container_name: immich_postgres
    image: registry.hub.docker.com/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
    volumes:
      - pgdata:/var/lib/postgresql/data
    restart: always

volumes:
  pgdata:
  model-cache:

networks:
  caddy_net:
    name: caddy_net
    external: true

Your .env content

# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables

# The location where your uploaded files are stored
UPLOAD_LOCATION=./library

# The Immich version to use. You can pin this to a specific version like "v1.71.0"
IMMICH_VERSION=v1.101.0

# Connection secret for postgres. You should change it to a random password
DB_PASSWORD=[redacted]

# The values below this line do not need to be changed
###################################################################################
DB_HOSTNAME=immich_postgres
DB_USERNAME=postgres
DB_DATABASE_NAME=immich

REDIS_HOSTNAME=immich_redis

Reproduction steps

1. Open the mobile app
2. Open an image from an album
3. Zoom on the image before the full-size image loads
4. The view "jumps", gets offset when the full-size image gets loaded

Additional information

No response

Seon82 avatar Apr 05 '24 15:04 Seon82

I can't reproduce this problem, can you specify which phone you are using? Are you experiencing this on other devices?

aviv926 avatar Apr 07 '24 22:04 aviv926

I have been able to reproduce the issue on a Samsung A54, Samsung A51, and Samsung Galaxy S7 Edge. Additionally, I've verified that the problem persists when connecting the app to the demo immich instance.

Seon82 avatar Apr 07 '24 22:04 Seon82

I have been able to reproduce the issue on a Samsung A54, Samsung A51, and Samsung Galaxy S7 Edge. Additionally, I've verified that the problem persists when connecting the app to the demo immich instance.

In fact, I connected to the demo as well, went into the album and then the photo and did not experience this problem. I also use Samsung. Have you changed any app settings?

aviv926 avatar Apr 07 '24 22:04 aviv926

That's weird - I can reproduce the issue with default settings.

Seon82 avatar Apr 07 '24 22:04 Seon82

I just managed to reproduce this as well.

bo0tzz avatar Apr 08 '24 12:04 bo0tzz

Additionally I can also observe a second snapping, when the "load originals" option in the asset viewer settings is enabled.

In this case the first snapping occurs when the large preview was loaded and the second snap when the full resolution image was loaded.

fabianbees avatar Apr 26 '24 10:04 fabianbees

I can reproduce on both an iPad air 4th generation on iOS 17 and on a Google Pixel 8 on android 14. Immich v1.111.0

ZtereoHYPE avatar Aug 12 '24 10:08 ZtereoHYPE