flutter / flutter/flutter

[camera] Support setJpegImageQuality on web and Windows

Open
#191,790 1 comment 0 reactions 0 assignees View on GitHub
c: proposal p: camera P3 package team-ecosystem triaged-ecosystem
Dominant language
Dart
Stars
179k
Forks
31.1k
PR merge metrics
PR metrics pending

Description

### Use case

`camera_platform_interface` 2.13.0 added `setJpegImageQuality(int cameraId, int quality)` for controlling JPEG compression quality of still image capture, and it is implemented in `camera_android_camerax` (0.7.4) and `camera_avfoundation` (0.10.2).

In `camera_platform_interface` 2.13.1 the default implementation is a no-op, so calling it on a platform that has not implemented it silently does nothing rather than throwing. That keeps the app-facing `CameraController.setJpegImageQuality` safe to call everywhere, but it also means there is currently no way for a developer to tell where the setting actually takes effect.

### Proposal

Implement `setJpegImageQuality` in the remaining camera implementation packages:

- [ ] `camera_web`
- [ ] `camera_windows`

This issue is linked from the `CameraController.setJpegImageQuality` dartdoc so that developers have one place to check the current state of platform support.

Related: https://github.com/flutter/flutter/issues/183229, https://github.com/flutter/packages/pull/11155

Contributor guide

Open the contributing guide

Research direction

Start by reading the camera_platform_interface setJpegImageQuality API and comparing its existing implementations in camera_android_camerax and camera_avfoundation. Then inspect the camera_web and camera_windows package entry points, and consider the work done when both implementation packages support the method and their support checkboxes can be marked complete.

Written by the indexing model from the issue text.

Assessment

Tech stack
dart
Domain
desktop-dev, web-dev
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.