Comments (7)
I have tried the following steps again with the help of a few friends:
- Upload the 693-byte JPG image below to the immich server.
. - Save this image from the immich iOS app.
- Save this image from the ios "Share".
Now I have the following three images, corresponding to the three steps above by name:
.
As you can see, the sizes of the last two images are the same(16983 bytes), both larger than the original image(693 bytes).
Then I used exiftool to compare the three images, the latter two are consistent and both contain more information than the original image, especially this one: Thumbnail Image : (Binary data 16004 bytes, use -b option to extract)
:
Therefore, I speculate that the way immich's iOS app saves images may be similar to the way images are saved in the iOS Share, which adds some additional data to the original image, rather than using the system API to save original images (if there is one). Could iOS developers please help confirm this?
- origin-image
ExifTool Version Number : 12.76
File Name : origin-image.jpg
Directory : .
File Size : 693 bytes
File Modification Date/Time : 2024:04:17 11:19:08+08:00
File Access Date/Time : 2024:04:17 11:24:55+08:00
File Inode Change Date/Time : 2024:04:17 11:24:54+08:00
File Permissions : -rw-r--r--
File Type : JPEG
File Type Extension : jpg
MIME Type : image/jpeg
JFIF Version : 1.01
Resolution Unit : None
X Resolution : 1
Y Resolution : 1
Image Width : 256
Image Height : 213
Encoding Process : Progressive DCT, Huffman coding
Bits Per Sample : 8
Color Components : 3
Y Cb Cr Sub Sampling : YCbCr4:2:0 (2 2)
Image Size : 256x213
Megapixels : 0.055
- save-from-immich-app
ExifTool Version Number : 12.76
File Name : save-from-immich-app.JPG
Directory : .
File Size : 17 kB
File Modification Date/Time : 2024:04:17 11:22:50+08:00
File Access Date/Time : 2024:04:17 11:24:51+08:00
File Inode Change Date/Time : 2024:04:17 11:24:49+08:00
File Permissions : -rw-r--r--
File Type : JPEG
File Type Extension : jpg
MIME Type : image/jpeg
JFIF Version : 1.01
Exif Byte Order : Big-endian (Motorola, MM)
X Resolution : 72
Y Resolution : 72
Resolution Unit : inches
Y Cb Cr Positioning : Centered
Exif Version : 0221
Components Configuration : Y, Cb, Cr, -
Flashpix Version : 0100
Color Space : sRGB
Exif Image Width : 256
Exif Image Height : 213
Scene Capture Type : Standard
Compression : JPEG (old-style)
Thumbnail Offset : 304
Thumbnail Length : 16004
Image Width : 256
Image Height : 213
Encoding Process : Progressive DCT, Huffman coding
Bits Per Sample : 8
Color Components : 3
Y Cb Cr Sub Sampling : YCbCr4:2:0 (2 2)
Image Size : 256x213
Megapixels : 0.055
Thumbnail Image : (Binary data 16004 bytes, use -b option to extract)
- save-from-ios-share
ExifTool Version Number : 12.76
File Name : save-from-ios-share.JPG
Directory : .
File Size : 17 kB
File Modification Date/Time : 2024:04:17 11:01:43+08:00
File Access Date/Time : 2024:04:17 11:24:51+08:00
File Inode Change Date/Time : 2024:04:17 11:24:49+08:00
File Permissions : -rw-r--r--
File Type : JPEG
File Type Extension : jpg
MIME Type : image/jpeg
JFIF Version : 1.01
Exif Byte Order : Big-endian (Motorola, MM)
X Resolution : 72
Y Resolution : 72
Resolution Unit : inches
Y Cb Cr Positioning : Centered
Exif Version : 0221
Components Configuration : Y, Cb, Cr, -
Flashpix Version : 0100
Color Space : sRGB
Exif Image Width : 256
Exif Image Height : 213
Scene Capture Type : Standard
Compression : JPEG (old-style)
Thumbnail Offset : 304
Thumbnail Length : 16004
Image Width : 256
Image Height : 213
Encoding Process : Progressive DCT, Huffman coding
Bits Per Sample : 8
Color Components : 3
Y Cb Cr Sub Sampling : YCbCr4:2:0 (2 2)
Image Size : 256x213
Megapixels : 0.055
Thumbnail Image : (Binary data 16004 bytes, use -b option to extract)
from immich.
Can you be more specific with the filesize? How are you determining this size and what changes are you seeing?
I believe the backup symbol is supposed to indicate images that were backed up from that device, which the downloaded one was not, since it was uploaded on Web.
from immich.
This happens (#6209) when you upload file with the same filename but different content than you have downloaded to device.
Seems the file is moddified during transfer to device. Please compare it binary.
from immich.
@mmomjian I exported two images, and renamed them to "upload" and "download" for convenience.
The uploaded one is 100842 bytes, and the downloaded one is 101518 bytes. Moreover, this change occurs only between the steps of uploading from the web and downloading from the app.
I think the change in file size causes the hash of the two images to differ, so duplicate images exist on the server.
BTW, I am unable to reproduce this issue with PNG images. When I download the image from the app, the backup button is correctly checked and there is only one image, even if the image was uploaded from the web.
So, is anyone else able to reproduce this issue with JPG images, or is it a configuration issue on my end?
from immich.
This happens (#6209) when you upload file with the same filename but different content than you have downloaded to device. Seems the file is moddified during transfer to device. Please compare it binary.
It doesn't appear to be the same issue, as I haven't performed any editing operations on the images.
from immich.
I think the change in file size causes the hash of the two images to differ, so duplicate images exist on the server.
Binary comparison of those two would help to track the cause of file size change. It could be many reasons, reverse proxy missconfiguration, unintentional modification some app on your phone, etc.
from immich.
Same here. I reported this way back when and this issue is one of the main things i run into as it prevents to download images that are only on the server as it creates duplicates that are re uploaded.
from immich.
Related Issues (20)
- Going back to search results from a fullscreen-displayed photo - always returns to the start of the search results list HOT 3
- WARN [StorageRepository] File upload/thumbs/.../ does not exist
- Issue on video playback: WARN [ExpressAdapter] Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses HOT 3
- (browser) can't see upload progress because of info notifications HOT 1
- Web admin settings page number input broken HOT 2
- Android app more assets been uploaded than Total assets. HOT 1
- "Select album cover" jumps to top of page after setting album cover
- Video unmutes when scrubbing HOT 2
- addAssetsToAlbum endpoint does not handle repeated IDs HOT 1
- Change name popup focus not on the text field
- Unable to use mobile app after changing language in settings HOT 1
- Mobile client not refreshing, after uploads not showing assets as cloud uploaded HOT 3
- duplicate file ending of movie files in iOS live pictures
- dev: linting newline after HTML elements
- Server is not reachable via Android app
- Deleting an Album does not delete the photos from the DB HOT 2
- Page down doesn't work more than once in timeline
- Possible behavior mismatch: Immich resets vector length in smart_search database when model is changed via UI, but does not perform this check if model is specified via config file HOT 7
- Android App - Can't add users to existing album HOT 1
- Video playback: Play/pause button overlayed by "previous" button HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from immich.