nextcloud / nextcloud/server

Ability to convert HEIC to JPG

Open
#63,754 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

0. Needs triage enhancement
Dominant language
PHP
Stars
36.9k
Forks
5.2k
Avg merge
2d 3h
Merged PRs (30d)
713

Description

[!TIP]

Help move this idea forward
  • Use the 👍 reaction to show support for this feature.
  • Avoid commenting unless you have relevant information to add; unnecessary comments create noise for subscribers.
  • Subscribe to receive notifications about status changes and new comments.

Is your feature request related to a problem? Please describe.
In an effort to improve auto-upload functionality on iOS, we plan to use the new API for iOS 27+ that allows us to upload photos/videos in the background faster and more reliably.
For this, however, we need to move the conversion of HEIC to JPG from client to server, as the new API does not allow asset modifications.

Describe the solution you'd like
Add the ability for server to convert a newly uploaded HEIC photo to a JPG. The conversion will be an optional toggle on the iOS app, so we can specify conversion with maybe a header field or some other param.

Describe alternatives you've considered
No alternatives.

Additional context
For the current HEIC to JPG conversion on client we use maximum JPG compression quality, so it should be the same on server:

let jpegData = CIContext().jpegRepresentation(
    of: ciImage,
    colorSpace: colorSpace,
    options: [compressionQuality: 1.0]
)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files or tests are named. Start by tracing server handling for newly uploaded files and checking existing image-conversion support; determine how an optional header or parameter reaches that path. Done means an opted-in HEIC upload produces a JPG at maximum quality without changing other uploads, with coverage for the conversion behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
ios, php
Domain
backend, mobile-dev
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.