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'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 "smart" 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= 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'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'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'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==--