GSoC 2026: Lossless JPG Transformations Project

Rishan via Wikitech-l <[email protected]> Wed, 13 May 2026 01:03:14 +0530
Newsgroups gmane.science.linguistics.wikipedia.technical
Message-ID <CAAiKDt=sus5u5FJ9XaaNpGnqv8Nt1E_FeXvZxSx92PrgXBuofA@mail.gmail.com>
--===============5328464959705473905==
Content-Type: multipart/alternative; boundary="000000000000c9de300651a3edba"

--000000000000c9de300651a3edba
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Everyone!

I am Rishan, an Open source contributor. I have been contributing to
the  Wikimedia
Commons App <https://commons.wikimedia.org/wiki/Commons:Mobile_app> for the
last couple of months and I am excited to share that I have been accepted
as a Google Summer of Code(GSoC) contributor at Wikimedia Foundation for
this summer. I want to take this opportunity to share about the upcoming
improvements in the image editing capabilities of the app.

The Wikimedia Commons App
<https://commons.wikimedia.org/wiki/Commons:Mobile_app> is an Android
application developed by contributors across the wikimedia movement that
enables users to browse, upload, and contribute media directly to the
Wikimedia Commons repository using their mobile devices.

This Project under GSoC 2026 aims to implementing the following

   1. Lossless crop feature.
   2.

   Lossless blur feature.
   3.

   Auto-detect and apply blur to people's faces and car number plates.


1) Lossless crop feature.

The Existing Crop feature in the Commons app when applied results in loss
of information. Due to improper handling of METADATA.

The Goal: Implement a "smart" crop that preserves all original METADATA whi=
le
maintaining the highest possible image resolution. This ensures that when a
user crops a photo to focus on a specific subject and the resulting image
is remained as its original resolution.

2) Lossless blur feature

Sometimes while uploading the photo, the contributor would want to blur out
some parts of the image to preserve privacy.

The Goal: A lossless blur feature, which would let contributors blur out
the regions which they don't want to be seen when uploaded, to make it
lossless we apply blur to only regions required by the user and make sure
we don't recompress other blocks of the image.


3) Auto-detect and apply blur to people's faces and car number plates.

When contributors capture images in public places, they often capture faces
of bystanders or car number plates that won=E2=80=99t have privacy clearanc=
e for a
global platform like Wikimedia Commons.

The Goal: Using computer vision library OpenCV, the app can automatically
scan the image to identify the coordinates of human faces and car number
plates these coordinates can be used to blur human faces or car number
plates out of the image.

Note: This is an opt-in feature that only runs when explicitly selected.


Outcomes:

   -

   No loss in information after editing the picture.
   -

   No need to depend on third-party apps instead transformation is done in
   the right way.
   -

   Protecting people's privacy becomes easy.


This summer, I=E2=80=99m honored to be working under the mentorship of Nico=
las
Raoul and Ritika Pahwa. Excited to learn from the best!

Phabricator Link: https://phabricator.wikimedia.org/T421595

--000000000000c9de300651a3edba
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><span id=3D"gmail-docs-internal-guid-da9d0caa-7fff-9746-2f=
de-f00ec057843b"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;ma=
rgin-bottom:0pt"><span style=3D"font-size:12pt;font-family:Arial,sans-serif=
;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;=
font-variant-east-asian:normal;font-variant-alternates:normal;vertical-alig=
n:baseline">Hi Everyone!</span></p><br><p dir=3D"ltr" style=3D"line-height:=
1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12pt;font-f=
amily:Arial,sans-serif;color:rgb(0,0,0);background-color:transparent;font-v=
ariant-numeric:normal;font-variant-east-asian:normal;font-variant-alternate=
s:normal;vertical-align:baseline">I am Rishan, an Open source contributor. =
I have been contributing to the </span><span style=3D"font-size:12pt;font-f=
amily:Arial,sans-serif;color:rgb(32,33,34);font-variant-numeric:normal;font=
-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:ba=
seline">=C2=A0</span><a href=3D"https://commons.wikimedia.org/wiki/Commons:=
Mobile_app" style=3D"text-decoration-line:none"><span style=3D"font-size:12=
pt;font-family:Arial,sans-serif;color:rgb(51,102,204);font-variant-numeric:=
normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertic=
al-align:baseline">Wikimedia Commons App</span></a><span style=3D"font-size=
:12pt;font-family:Arial,sans-serif;color:rgb(0,0,0);background-color:transp=
arent;font-variant-numeric:normal;font-variant-east-asian:normal;font-varia=
nt-alternates:normal;vertical-align:baseline"> for the last couple of month=
s and I am excited to share that </span><span style=3D"font-size:12pt;font-=
family:Arial,sans-serif;color:rgb(32,33,34);font-variant-numeric:normal;fon=
t-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:b=
aseline">I have been accepted as a Google Summer of Code(GSoC) contributor =
at Wikimedia Foundation for this summer.</span><span style=3D"font-size:12p=
t;font-family:Arial,sans-serif;color:rgb(0,0,0);background-color:transparen=
t;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-a=
lternates:normal;vertical-align:baseline"> I want to take this </span><span=
 style=3D"font-size:12pt;font-family:Arial,sans-serif;color:rgb(32,33,34);f=
ont-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alte=
rnates:normal;vertical-align:baseline">opportunity to share about the upcom=
ing improvements in the image editing capabilities of the app.</span></p><b=
r><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt=
"><span style=3D"font-size:12pt;font-family:Arial,sans-serif;color:rgb(32,3=
3,34);font-variant-numeric:normal;font-variant-east-asian:normal;font-varia=
nt-alternates:normal;vertical-align:baseline">The </span><a href=3D"https:/=
/commons.wikimedia.org/wiki/Commons:Mobile_app" style=3D"text-decoration-li=
ne:none"><span style=3D"font-size:12pt;font-family:Arial,sans-serif;color:r=
gb(51,102,204);font-variant-numeric:normal;font-variant-east-asian:normal;f=
ont-variant-alternates:normal;vertical-align:baseline">Wikimedia Commons Ap=
p</span></a><span style=3D"font-size:12pt;font-family:Arial,sans-serif;colo=
r:rgb(32,33,34);font-variant-numeric:normal;font-variant-east-asian:normal;=
font-variant-alternates:normal;vertical-align:baseline"> is an Android appl=
ication developed by contributors across the wikimedia movement that enable=
s users to browse, upload, and contribute media directly to the Wikimedia C=
ommons repository using their mobile devices.</span></p><br><p dir=3D"ltr" =
style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"=
font-size:12pt;font-family:Arial,sans-serif;color:rgb(0,0,0);background-col=
or:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;f=
ont-variant-alternates:normal;vertical-align:baseline">This Project </span>=
<span style=3D"font-size:12pt;font-family:Arial,sans-serif;color:rgb(32,33,=
34);font-variant-numeric:normal;font-variant-east-asian:normal;font-variant=
-alternates:normal;vertical-align:baseline">under GSoC 2026 aims</span><spa=
n style=3D"font-size:12pt;font-family:Arial,sans-serif;color:rgb(0,0,0);bac=
kground-color:transparent;font-variant-numeric:normal;font-variant-east-asi=
an:normal;font-variant-alternates:normal;vertical-align:baseline"> to imple=
menting the following</span></p><ol style=3D"margin-top:0px;margin-bottom:0=
px"><li dir=3D"ltr" style=3D"list-style-type:decimal;font-size:12pt;font-fa=
mily:Arial,sans-serif;color:rgb(102,102,102);background-color:transparent;f=
ont-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alte=
rnates:normal;vertical-align:baseline;white-space:pre"><h4 dir=3D"ltr" styl=
e=3D"line-height:1.68;margin-top:11pt;margin-bottom:0pt" role=3D"presentati=
on"><span style=3D"font-size:12pt;color:rgb(0,0,0);background-color:transpa=
rent;font-weight:400;font-variant-numeric:normal;font-variant-east-asian:no=
rmal;font-variant-alternates:normal;vertical-align:baseline">Lossless crop =
feature.</span></h4></li><li dir=3D"ltr" style=3D"list-style-type:decimal;f=
ont-size:12pt;font-family:Arial,sans-serif;color:rgb(0,0,0);background-colo=
r:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;fo=
nt-variant-alternates:normal;vertical-align:baseline;white-space:pre"><p di=
r=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt" role=
=3D"presentation"><span style=3D"font-size:12pt;background-color:transparen=
t;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-a=
lternates:normal;vertical-align:baseline">Lossless blur feature.</span></p>=
</li><li dir=3D"ltr" style=3D"list-style-type:decimal;font-size:12pt;font-f=
amily:Arial,sans-serif;color:rgb(0,0,0);background-color:transparent;font-v=
ariant-numeric:normal;font-variant-east-asian:normal;font-variant-alternate=
s:normal;vertical-align:baseline;white-space:pre"><p dir=3D"ltr" style=3D"l=
ine-height:1.38;margin-top:0pt;margin-bottom:0pt" role=3D"presentation"><sp=
an style=3D"font-size:12pt;background-color:transparent;font-variant-numeri=
c:normal;font-variant-east-asian:normal;font-variant-alternates:normal;vert=
ical-align:baseline">Auto-detect and apply blur to</span><span style=3D"fon=
t-size:10pt;font-variant-numeric:normal;font-variant-east-asian:normal;font=
-variant-alternates:normal;vertical-align:baseline"> </span><span style=3D"=
font-size:12pt;font-variant-numeric:normal;font-variant-east-asian:normal;f=
ont-variant-alternates:normal;vertical-align:baseline">people&#39;s faces a=
nd car number plates</span><span style=3D"font-size:13pt;background-color:t=
ransparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-=
variant-alternates:normal;vertical-align:baseline">.</span></p></li></ol><b=
r><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt=
"><span style=3D"font-size:12pt;font-family:Arial,sans-serif;color:rgb(0,0,=
0);background-color:transparent;font-variant-numeric:normal;font-variant-ea=
st-asian:normal;font-variant-alternates:normal;vertical-align:baseline">1) =
Lossless crop feature.</span></p><p dir=3D"ltr" style=3D"line-height:1.38;m=
argin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12pt;font-family:=
Arial,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant=
-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:norm=
al;vertical-align:baseline">The Existing Crop feature in the Commons app wh=
en applied results in loss of information. Due to improper handling of META=
DATA.</span></p><br><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt=
;margin-bottom:0pt"><span style=3D"font-size:12pt;font-family:Arial,sans-se=
rif;color:rgb(0,0,0);background-color:transparent;font-weight:700;font-vari=
ant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:n=
ormal;vertical-align:baseline">The Goal:</span><span style=3D"font-size:12p=
t;font-family:Arial,sans-serif;color:rgb(0,0,0);background-color:transparen=
t;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-a=
lternates:normal;vertical-align:baseline"> Implement a &quot;smart&quot; cr=
op that preserves all original </span><span style=3D"font-size:12pt;font-fa=
mily:Arial,sans-serif;color:rgb(0,0,0);background-color:transparent;font-we=
ight:700;font-variant-numeric:normal;font-variant-east-asian:normal;font-va=
riant-alternates:normal;vertical-align:baseline">METADATA </span><span styl=
e=3D"font-size:12pt;font-family:Arial,sans-serif;color:rgb(0,0,0);backgroun=
d-color:transparent;font-variant-numeric:normal;font-variant-east-asian:nor=
mal;font-variant-alternates:normal;vertical-align:baseline">while maintaini=
ng the highest possible image resolution. This ensures that when a user cro=
ps a photo to focus on a specific subject and the resulting image is remain=
ed as its original resolution.</span></p><br><p dir=3D"ltr" style=3D"line-h=
eight:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12pt;=
font-family:Arial,sans-serif;color:rgb(31,31,31);font-variant-numeric:norma=
l;font-variant-east-asian:normal;font-variant-alternates:normal;vertical-al=
ign:baseline">2) Lossless blur feature</span></p><p dir=3D"ltr" style=3D"li=
ne-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:1=
2pt;font-family:Arial,sans-serif;color:rgb(31,31,31);background-color:trans=
parent;font-variant-numeric:normal;font-variant-east-asian:normal;font-vari=
ant-alternates:normal;vertical-align:baseline">Sometimes while uploading th=
e photo, the contributor would want to blur out some parts of the image to =
preserve privacy.</span></p><br><p dir=3D"ltr" style=3D"line-height:1.38;ma=
rgin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12pt;font-family:A=
rial,sans-serif;color:rgb(0,0,0);background-color:transparent;font-weight:7=
00;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-=
alternates:normal;vertical-align:baseline">The Goal:</span><span style=3D"f=
ont-size:12pt;font-family:Arial,sans-serif;color:rgb(31,31,31);background-c=
olor:transparent;font-variant-numeric:normal;font-variant-east-asian:normal=
;font-variant-alternates:normal;vertical-align:baseline"> A lossless blur f=
eature, which would let contributors blur out the regions which they don&#3=
9;t want to be seen when uploaded, to make it lossless we apply blur to onl=
y regions required by the user and make sure we don&#39;t recompress other =
blocks of the image.</span></p><br><br><p dir=3D"ltr" style=3D"line-height:=
1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12pt;font-f=
amily:Arial,sans-serif;color:rgb(0,0,0);font-variant-numeric:normal;font-va=
riant-east-asian:normal;font-variant-alternates:normal;vertical-align:basel=
ine">3) </span><span style=3D"font-size:12pt;font-family:Arial,sans-serif;c=
olor:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;fo=
nt-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:=
baseline">Auto-detect and apply blur to</span><span style=3D"font-size:10pt=
;font-family:Arial,sans-serif;color:rgb(0,0,0);font-variant-numeric:normal;=
font-variant-east-asian:normal;font-variant-alternates:normal;vertical-alig=
n:baseline"> </span><span style=3D"font-size:12pt;font-family:Arial,sans-se=
rif;color:rgb(0,0,0);font-variant-numeric:normal;font-variant-east-asian:no=
rmal;font-variant-alternates:normal;vertical-align:baseline">people&#39;s f=
aces and car number plates</span><span style=3D"font-size:13pt;font-family:=
Arial,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant=
-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:norm=
al;vertical-align:baseline">.</span></p><p dir=3D"ltr" style=3D"line-height=
:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:13pt;font-=
family:Arial,sans-serif;color:rgb(0,0,0);background-color:transparent;font-=
variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternat=
es:normal;vertical-align:baseline">When contributors capture images in publ=
ic places, they often capture faces of bystanders or car number plates that=
 won=E2=80=99t have privacy clearance for a global platform like Wikimedia =
Commons.</span></p><br><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:=
0pt;margin-bottom:0pt"><span style=3D"font-size:12pt;font-family:Arial,sans=
-serif;color:rgb(0,0,0);background-color:transparent;font-weight:700;font-v=
ariant-numeric:normal;font-variant-east-asian:normal;font-variant-alternate=
s:normal;vertical-align:baseline">The Goal: </span><span style=3D"font-size=
:12pt;font-family:Arial,sans-serif;color:rgb(0,0,0);background-color:transp=
arent;font-variant-numeric:normal;font-variant-east-asian:normal;font-varia=
nt-alternates:normal;vertical-align:baseline">Using computer vision library=
 OpenCV, the app can automatically scan the image to identify the coordinat=
es of human faces and car number plates these coordinates can be used to bl=
ur human faces or car number plates out of the image.</span></p><p dir=3D"l=
tr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=
=3D"font-size:12pt;font-family:Arial,sans-serif;color:rgb(0,0,0);background=
-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant=
-east-asian:normal;font-variant-alternates:normal;vertical-align:baseline">=
Note: </span><span style=3D"font-size:12pt;font-family:Arial,sans-serif;col=
or:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font=
-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:ba=
seline">This is an </span><span style=3D"font-size:12pt;font-family:Arial,s=
ans-serif;color:rgb(0,0,0);background-color:transparent;font-weight:700;fon=
t-variant-numeric:normal;font-variant-east-asian:normal;font-variant-altern=
ates:normal;vertical-align:baseline">opt-in feature</span><span style=3D"fo=
nt-size:12pt;font-family:Arial,sans-serif;color:rgb(0,0,0);background-color=
:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;fon=
t-variant-alternates:normal;vertical-align:baseline"> that only runs when e=
xplicitly selected.=C2=A0</span></p><br><br><p dir=3D"ltr" style=3D"line-he=
ight:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12pt;f=
ont-family:Arial,sans-serif;color:rgb(0,0,0);background-color:transparent;f=
ont-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alte=
rnates:normal;vertical-align:baseline">Outcomes:=C2=A0</span></p><ul style=
=3D"margin-top:0px;margin-bottom:0px"><li dir=3D"ltr" style=3D"list-style-t=
ype:disc;font-size:12pt;font-family:Arial,sans-serif;color:rgb(0,0,0);backg=
round-color:transparent;font-variant-numeric:normal;font-variant-east-asian=
:normal;font-variant-alternates:normal;vertical-align:baseline;white-space:=
pre"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:=
0pt" role=3D"presentation"><span style=3D"font-size:12pt;background-color:t=
ransparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-=
variant-alternates:normal;vertical-align:baseline">No loss in information a=
fter editing the picture.</span></p></li><li dir=3D"ltr" style=3D"list-styl=
e-type:disc;font-size:12pt;font-family:Arial,sans-serif;color:rgb(0,0,0);ba=
ckground-color:transparent;font-variant-numeric:normal;font-variant-east-as=
ian:normal;font-variant-alternates:normal;vertical-align:baseline;white-spa=
ce:pre"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bott=
om:0pt" role=3D"presentation"><span style=3D"font-size:12pt;background-colo=
r:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;fo=
nt-variant-alternates:normal;vertical-align:baseline">No need to depend on =
third-party apps instead transformation is done in the right way.</span></p=
></li><li dir=3D"ltr" style=3D"list-style-type:disc;font-size:12pt;font-fam=
ily:Arial,sans-serif;color:rgb(0,0,0);background-color:transparent;font-var=
iant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:=
normal;vertical-align:baseline;white-space:pre"><p dir=3D"ltr" style=3D"lin=
e-height:1.38;margin-top:0pt;margin-bottom:0pt" role=3D"presentation"><span=
 style=3D"font-size:12pt;background-color:transparent;font-variant-numeric:=
normal;font-variant-east-asian:normal;font-variant-alternates:normal;vertic=
al-align:baseline">Protecting people&#39;s privacy becomes easy.</span></p>=
</li></ul><br><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margi=
n-bottom:0pt"><span style=3D"font-size:12pt;font-family:Arial,sans-serif;co=
lor:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;fon=
t-variant-east-asian:normal;font-variant-alternates:normal;vertical-align:b=
aseline">This summer, I=E2=80=99m honored to be working under the mentorshi=
p of Nicolas Raoul and Ritika Pahwa. Excited to learn from the best!</span>=
</p><br><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bott=
om:0pt"><span style=3D"font-size:12pt;font-family:Arial,sans-serif;color:rg=
b(0,0,0);background-color:transparent;font-variant-numeric:normal;font-vari=
ant-east-asian:normal;font-variant-alternates:normal;vertical-align:baselin=
e">Phabricator Link: <a href=3D"https://phabricator.wikimedia.org/T421595">=
https://phabricator.wikimedia.org/T421595</a></span></p></span><br class=3D=
"gmail-Apple-interchange-newline"></div>

--000000000000c9de300651a3edba--

--===============5328464959705473905==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Wikitech-l mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://lists.wikimedia.org/postorius/lists/wikitech-l.lists.wikimedia.org/
--===============5328464959705473905==--