Fråga:
Hur tillämpas redigering av galleriapplikationer på bilder?
Buzu
2014-01-25 10:24:41 UTC
view on stackexchange narkive permalink

Jag märkte idag att om du använder filter eller ändrar en bild med hjälp av galleriprogrammet, tillämpar den ändringarna på bilden snarare än att skapa en ny bild med ändringarna. Min första tanke var att det inte var en bra idé. Ibland vill du behålla den ursprungliga, orörda bilden, liksom den modifierade bilden, kanske för jämförelseändamål, eller för att prova olika filter eller inställningar. I mitt fall spelade jag med kurvorna och sedan sparade jag bilden. Jag ville jämföra den nya bilden med originalet, men originalet var borta. Jag bestämde mig för att gå tillbaka till kurvinställningarna och såg att kurvorna fortfarande var som jag hade ställt in dem, vilket innebär att jag bara kan återställa kurvan för varje kanal och det ger mig tillbaka originalbilden.

Jag bestämde mig för att göra ett test med en annan bild. Jag öppnade en ny bild, applicerade ett filter från de förinställda filtren och sparade bilden. Sedan gick jag tillbaka till bilden och redigerade den igen, men den här gången tog jag bort filtret och bilden var tillbaka till normal.

Min första tanke var att galleribilden tillämpade icke-destruktiva ändringar. Något liknande det som vissa redigeringsprogram gör. Den som kommer att tänka på är Shotwell, även om det här är mer en tittare än och redigerare, men den har viss begränsad funktionalitet för att leka med mättnad, nivåer och andra inställningar. Det verkade inte troligt att galleriapplikationen i adroid gjorde det eftersom andra bildvisningsapplikationer visade bilden med filtret applicerat på det.

Jag bestämde mig för att ansluta enheten till datorn med en USB-kabel . Jag navigerade till kameramappen och öppnade bilden i datorn och den visade den modifierade bilden. Detta innebär att bilden modifieras. Medan enheterna fortfarande var anslutna till datorn bestämde jag mig för att ta bort filtret och öppna bilden igen i datorn. Bilden var tillbaka till originalet.

Hur kan android ändra bildfilen direkt och sedan återställa den till originalet. Sparar den originalfilen någon annanstans?

Hur reproduceras:

  1. Öppna Galleri-applikationen (standard)
  2. Välj en bild att redigera och tryck på den lilla pennan i skärmens nedre vänstra hörn.
  3. Redigera din bild, tryck på spara eller tryck bara på bakåtknappen. Det kommer att fråga om du vill spara bilden. Spara den.
  4. Peka på pennan igen, ta bort filtret.
  5. Din bild är tillbaka till originalet.

Enhet: Nexus 7

OS: Android 4.4.2

Så vitt jag vet sparar Gallery den modifierade bilden i en annan fil i samma mapp. Men jag har aldrig varit på KitKat ...
Det var vad jag tänkte, men jag försummar min enhet för mycket för att ha läst någonting om den tidigare.
Ett svar:
Dan Hulme
2014-01-25 18:22:14 UTC
view on stackexchange narkive permalink

Du hittar källan till den här appen i paketet Gallery2 i AOSP. All kod för fotoredigeraren finns i src / com / android / gallery3d / filtershow . Sparandet hanteras av tools / ImageSave.java , som har denna kommentar som förklarar beteendet (som jag har formaterat): -

För att stödja det nya redigera-spara beteende så att användaren inte ser den redigerade bilden tillsammans med originalbilden, vi lägger till en ny hjälpkatalog för den redigerade bilden. I grund och botten kommer originalbilden att döljas i den katalogen efter redigering och användaren ser endast den redigerade bilden.

Observera att borttagning av den redigerade bilden också kommer att orsaka att originalbilden raderas under hjälpkatalogen. / p>

Det finns flera situationer som vi måste tänka på:

  1. Användarredigering lokal bild local01.jpg . En local02.jpg skapas i samma katalog och originalbilden flyttas till hjälpkatalogen som ./.aux/local02.jpg . Om användaren redigerar local02.jpg skapas local03.jpg i den lokala katalogen och ./.aux/local02.jpg skapas bytt namn till ./.aux/local03.jpg

  2. Användarredigera fjärrbild remote01.jpg från picassa eller annan server . remoteSavedLocal01.jpg sparas under rätt lokal katalog. I remoteSavedLocal01.jpg kommer det att finnas en referens som pekar till remote01.jpg . Det finns ingen lokal kopia av remote01.jpg . Om användaren redigerar remoteSavedLocal01.jpg skapas en ny remoteSavedLocal02.jpg och pekar fortfarande på remote01.jpg

  3. Användaren tar bort alla lokala bilder local.jpg . Eftersom filnamnen hålls konsekventa i hjälpkatalogen raderas filerna i hjälpkatalogen vars namn som börjar med " lokalt. " varje gång en local.jpg raderas. Detta mönster underlättar radering av flera bilder i hjälpkatalogen.

Kort sagt: ja , det sparar redigerade bilder i en .aux -katalog, i katalogen som bilden kom från.

Den lagrar också filterkedjan som du använde för att skapa bilden i XMP-metadata inuti ny bild (den filtrerade), i namnområdet http://ns.google.com/photos/1.0/filter/ . Denna information består av:

  • SourceFileUri : URI där den har sparat den omodifierade filen
  • filterstack : a seriell representation av den stapel filter som den använde (i samma format sparar den förinställningar i sin privata databas)
Bra svar! Med kodlänk och allt. Jag älskar det. Tack så mycket, Dan.


Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...