Low compression quality compared to cwebp CLI tool

Ouverte
#116 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
25/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
objective-c, swift

Piste de recherche

Commencez par le point d’entrée de l’encodage sans perte de SDImageWebPCoder présenté dans le rapport et comparez sa sortie à celle de cwebp -lossless à l’aide de l’exemple fourni. Vérifiez quelles options encodeCompressionQuality, encodeWebPMethod et encodeWebPPass sont transmises, puis définissez l’achèvement comme le fait de correspondre au comportement de cwebp en matière de qualité sans perte et de taille de fichier, ou de documenter la différence d’implémentation.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Description

When using SDImageWebPCoder to encode images with lossless options, the resulting file size and compression quality appear to be worse compared to Google's cwebp command-line tool. Despite both using lossless compression settings, SDImageWebPCoder produces slightly lower quality images, with visible artifacts and banding on gradients and shadows.

I experimented with different encoding options such as: encodeCompressionQuality, encodeWebPMethod, encodeWebPPass etc. Despite these adjustments, the output quality and file size were still worse compared to cwebp -lossless. This suggests a fundamental difference in how the WebP encoding is implemented in SDImageWebPCoder versus the official WebP compression tool.

Code

SDImageWebPCoder:

if let data = SDImageWebPCoder.shared.encodedData(with: nsImage, format: .webP, options: [.encodeWebPLossless: 1]) {
  try data.write(to: destination))
}

cwebp:

cwebp -lossless input.png -o output.webp
Results

Image

Langage dominant
Objective-C
Étoiles
277
Forks
101
Métriques de merge des PR
Aucune PR mergée en 30 j

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de SDWebImage/SDWebImageWebPCoder

Toutes les issues de SDWebImage/SDWebImageWebPCoder

Issues similaires

Plus d'issues Objective-C

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.