feat(photos): рендер только видимой области при зуме правок

Вместо полноразмерной отредактированной версии просмотр запрашивает у сервера
только видимую область кадра: координаты относительные, поэтому запрос не
зависит от размера оригинала. Рендер куска занимает около 0.15 с против 0.8 с
для всей картинки, а полноразмерная версия больше не готовится вовсе.

Зум больше не сбрасывается, когда приходит отрендеренная версия правок:
состояние просмотра сбрасывается только при смене самого фото.
This commit is contained in:
iu
2026-10-20 23:34:45 +03:00
parent 6d3d7cbdd4
commit 4d2069d079
9 changed files with 328 additions and 40 deletions
+2 -3
View File
@@ -113,9 +113,8 @@ func encodeEditedVariants(edited *image.NRGBA) (thumb, medium, preview []byte, e
return thumb, medium, preview, nil
}
// encodeEditedFull renders the full-size edited version of a photo. It is
// encoded separately from the grid variants because it is the slowest step.
func encodeEditedFull(edited *image.NRGBA) ([]byte, error) {
// encodeEdited renders an edited image part as WebP.
func encodeEdited(edited *image.NRGBA) ([]byte, error) {
var buf bytes.Buffer
if err := webp.Encode(&buf, edited, webp.Options{Quality: 82}); err != nil {
return nil, err