Android bildeeffekter Tutorial

Android lar deg manipulere bilder ved å legge ulike typer effekter på bildene. Du kan enkelt søke bildebehandling teknikker for å legge visse typer effekter på bilder. Effektene kan være lysstyrke, mørke gråtoner konvertering etc

Android gir Bitmap klasse til å håndtere bilder. Dette finner du under android.graphics.bitmap. Det er mange måter som du kan instantiate bitmap. Vi skaper et bitmap bilde fra bildeVis
private Bitmap bmp,. Privat Imageview img, img = (Imageview) findViewById (R.id.imageView1); BitmapDrawable ABMP = (BitmapDrawable) img.getDrawable ();

nå vil vi lage bitmap ved å ringe getBitmap () funksjon BitmapDrawable klasse. Syntaksen er gitt nedenfor −
bmp = abmp.getBitmap ();

Et bilde er ikke noe annet enn en todimensjonal matrise. Samme måten vil du håndtere en bitmap. Et bilde består av piksler. Så vil du få piksler fra denne bitmap og bruke behandling til den. Syntaksen er som følger −
for (int i = 0; i < bmp.getWidth (); i ++) {for (int j = 0; j < bmp.getHeight (); j ++) {int p = bmp .getPixel (i, j); }}

getWidth () og getHeight () funksjoner returnerer høyden og bredden av matrisen. Den getPixel () metoden returnerer pikselen ved den angitte indeksen. . Når du har fått den pixel, kan du enkelt manipulere det i henhold til dine behov

Bortsett fra disse metodene, er det andre metoder som hjelper oss manipulere bilder mer bedre
Sr.NoMethod &.; description1 eksemplar (Bitmap.Config config, boolsk isMutable)

Denne metoden kopiere denne bitmap piksler inn i den nye bitmap
2 createBitmap (DisplayMetrics display, int bredde, int høyde, Bitmap. config config)

Returnerer en foranderlig bitmap med angitt bredde og høyde
3 createBitmap (int bredde, int høyde, Bitmap.Config config)

Returnerer en foranderlig bitmap med angitt bredde og høyde
4 createBitmap (bitmap src)

Returnerer et uforanderlig bitmap fra kilden bitmap
5 extractAlpha ()

Returnerer en ny bitmap som fanger alfa verdier av den opprinnelige
6 getConfig ()

Dette mehtod eturn at config, ellers returnerer null
7 getDensity ()

returnerer tetthet for bitmap
8 getRowBytes ()

Retur antall byte mellom radene i bitmap piksler
9 setPixel (int x, int y, int farge )

Skriv den angitte fargen inn i bitmap (forutsatt at det er foranderlig) på x, y koordinat
10 setDensity (int tetthet)

Denne metoden angir tettheten for dette bitmap

eksempel

eksempelet nedenfor viser noen av bildeeffekter på bitmap. Det kasser et grunnleggende program som lar deg konvertere bildet til gråtoner og mye mer.

For å eksperimentere med dette eksempelet, må du kjøre dette på en faktisk enhet.
StepsDescription1You vil bruke Android studio for å lage en Android-applikasjon under en pakke com.example.sairamkrishna.myapplication. Mens du oppretter dette prosjektet, må du Target SDK og kompilere med på den nyeste versjonen av Android SDK for å bruke høyere nivåer av APIs.2Modify src /MainActivity.java filen for å legge nødvendig code.3Modify res /layout /activity_main å legge respektive XML components4Run programmet og velge en som kjører android-enhet og installere programmet på den og kontrollere resultatene

Følgende er innholdet av den modifiserte MainActivity.java
.
pakken com.example.sairamkrishna.myapplication, import android.graphics.Bitmap, import android.graphics.Color, import android.graphics.drawable.BitmapDrawable, import android.support.v7.app.ActionBarActivity, import android.os .bundle, import android.view.View, import android.widget.Button, import android.widget.ImageView; public class MainActivity strekker ActionBarActivity {Button b1, b2, b3; Imageview im; privat Bitmap bmp; privat Bitmap drift; Override Beskyttet void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); b1 = (Button) findViewById (R.id.button); b2 = (Button) findViewById (R.id.button2); b3 = (Button) findViewById (R.id.button3); im = (Imageview) findViewById (R.id.imageView); BitmapDrawable ABMP = (BitmapDrawable) im.getDrawable (); bmp = abmp.getBitmap (); } Public void grå (Vis visning) {drift = Bitmap.createBitmap (bmp.getWidth (), bmp.getHeight (), bmp.getConfig ()); dobbel rød = 0,33; dobbel grønn = 0,59; dobbel blå = 0,11; for (int i = 0; i < bmp.getWidth (); i ++) {for (int j = 0; j < bmp.getHeight (); j ++) {int p = bmp.getPixel (i, j); int r = Color.red (p); int g = Color.green (p); int b = Color.blue (p); r = (int) red * r; g = (int) grønn * g; b = (int) blå * b; operation.setPixel (i, j, Color.argb (Color.alpha (p), r, g, b)); }} Im.setImageBitmap (drift); } Public void lyse (Vis visning) {drift = Bitmap.createBitmap (bmp.getWidth (), bmp.getHeight (), bmp.getConfig ()); for (int i = 0; i < bmp.getWidth (); i ++) {for (int j = 0; j < bmp.getHeight (); j ++) {int p = bmp.getPixel (i, j); int r = Color.red (p); int g = Color.green (p); int b = Color.blue (p); int alpha = Color.alpha (p); r = 100 + r; g = 100 + g; b = 100 + b; alpha = 100 + alpha; operation.setPixel (i, j, Color.argb (alfa, r, g, b)); }} Im.setImageBitmap (drift); } Public void mørk (Vis visning) {drift = Bitmap.createBitmap (bmp.getWidth (), bmp.getHeight (), bmp.getConfig ()); for (int i = 0; i < bmp.getWidth (); i ++) {for (int j = 0; j < bmp.getHeight (); j ++) {int p = bmp.getPixel (i, j); int r = Color.red (p); int g = Color.green (p); int b = Color.blue (p); int alpha = Color.alpha (p); r = r - 50; g = g - 50; b = b - 50; alpha = alpha -50; operation.setPixel (i, j, Color.argb (Color.alpha (p), r, g, b)); }} Im.setImageBitmap (drift); } Public void gama (Vis visning) {drift = Bitmap.createBitmap (bmp.getWidth (), bmp.getHeight (), bmp.getConfig ()); for (int i = 0; i < bmp.getWidth (); i ++) {for (int j = 0; j < bmp.getHeight (); j ++) {int p = bmp.getPixel (i, j); int r = Color.red (p); int g = Color.green (p); int b = Color.blue (p); int alpha = Color.alpha (p); r = r + 150; g = 0; b = 0; alpha = 0; operation.setPixel (i, j, Color.argb (Color.alpha (p), r, g, b)); }} Im.setImageBitmap (drift); } Public void grønn (Vis visning) {drift = Bitmap.createBitmap (bmp.getWidth (), bmp.getHeight (), bmp.getConfig ()); for (int i = 0; < bmp.getWidth (); i ++) {for (int j = 0; j < bmp.getHeight (); j ++) {int p = bmp.getPixel (i, j); int r = Color.red (p); int g = Color.green (p); int b = Color.blue (p); int alpha = Color.alpha (p); r = 0; g = g + 150; b = 0; alpha = 0; operation.setPixel (i, j, Color.argb (Color.alpha (p), r, g, b)); }} Im.setImageBitmap (drift); } Public void blå (Vis visning) {drift = Bitmap.createBitmap (bmp.getWidth (), bmp.getHeight (), bmp.getConfig ()); for (int i = 0; i < bmp.getWidth (); i ++) {for (int j = 0; j < bmp.getHeight (); j ++) {int p = bmp.getPixel (i, j); int r = Color.red (p); int g = Color.green (p); int b = Color.blue (p); int alpha = Color.alpha (p); r = 0; g = 0; b = b + 150; alpha = 0; operation.setPixel (i, j, Color.argb (Color.alpha (p), r, g, b)); }} Im.setImageBitmap (drift); }}

Følgende er endret innholdet i xml res /layout /activity_main.xml
< RelativeLayout xmlns:. Android = "http://schemas.android.com/apk/rES /android "xmlns: verktøy =" http://schemas.android.com/tools "android: layout_width =" match_parent "android: layout_height =" match_parent "android: paddingLeft =" @ dimen /activity_horizontal_margin "android: paddingRight =" @ dimen /activity_horizontal_margin "android: paddingTop =" @ dimen /activity_vertical_margin "android: paddingBottom =" @ dimen /activity_vertical_margin "verktøy: kontekst =" MainActivity ">. ≪ TextView android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: id = "+ id /textView" android: layout_alignParentTop = "true" android: layout_centerHorizontal = "true" android: Tekststørrelse = "30dp" android : tekst = "bilde~~POS=TRUNC" /> ≪ TextView android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Guider Point" android: id = "+ id /textView2" android: layout_below = "+ id /textView" android: layout_centerHorizontal = "true" android: Tekststørrelse = "35dp" android: textcolor = "# ff16ff01" /> ≪ Imageview android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: id = "+ id /bildeVis" android: layout_below = "+ id /textView2" android: layout_centerHorizontal = "true" android: src = "@ teikne /logo" /> ≪ Button android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Gray" android: onclick = "grå" android: id = "+ id /knapp" android: layout_alignParentBottom = "true" android : layout_alignParentLeft = "true" android: layout_alignParentStart = "true" android: layout_marginBottom = "97dp" /> ≪ Button android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "mørke" android: onClick = "mørke" android: id = "+ id /knappen2" android: layout_alignBottom = "+ id /knapp "android: layout_alignParentRight =" true "android: layout_alignParentEnd =" true "/> ≪ Button android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Bright" android: onClick = "lyse" android: id = "+ id /button3" android: layout_alignTop = "+ id /knappen2 "android: layout_centerHorizontal =" true "/> ≪ Button android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Red" android: onClick = "gama" android: id = "+ id /Button4" android: layout_below = "+ id /button3 "android: layout_alignParentLeft =" true "android: layout_alignParentStart =" true "/> ≪ Button android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Green" android: onClick = "grønn" android: id = "+ id /Button5" android: layout_alignTop = "+ id /Button4 "android: layout_alignLeft =" + id /button3 "android: layout_alignStart =" + id /button3 "/> ≪ Button android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "blue" android: onClick = "blue" android: id = "+ id /Button6" android: layout_below = "+ id /knappen2 "android: layout_toRightOf =" + id /textView "android: layout_toEndOf =" + id /textView "/> ≪ /RelativeLayout >

Følgende er innholdet av AndroidManifest.xml
fil
. ≪? Xml version = "1.0" encoding = "utf-8" >? ≪ manifest xmlns : android = "http://schemas.android.com/apk/res/android" pakken = "com.example.sairamkrishna.myapplication" > ≪ søknad android: allowBackup = "true" android: icon = "@ mipmap /ic_launcher" android: label = "@ string /app_name" android: tema = "@ stil /AppTheme" > ≪ aktivitet android: ". MainActivity" name = android: label = "@ string /app_name" > ≪ intent-filter > ≪ handling android: name = "android.intent.action.MAIN" /> ≪ kategorien android: name = "android.intent.category.LAUNCHER" /> ≪ /intent-filter > ≪ /aktivitet > ≪ /søknad > < /manifest >

La oss prøve å kjøre vår søknad vi bare endret. Jeg antar at du hadde laget din AVD
mens du gjør oppsett miljø. For å kjøre programmet fra Android studio, åpne en av prosjektets aktivitets filer, og klikk Kjør ikonet fra verktøylinjen. Android studio installerer programmet på AVD og starter den, og hvis alt er bra med oppsettet og anvendelse, vil det vise følgende Emulator vindu og minus;

Nå, hvis du vil se på skjermen på enheten din, vil du se et bilde av android sammen med tre knapper.

nå bare velge den grå knappen som vil konvertere bildet til gråtoner og vil oppdatere brukergrensesnittet. Det er vist nedenfor −

Nå trykker på den lyse knappen, som vil legge noen verdi for hver piksel i bildet og dermed gjør en illusjon av lysstyrke. Det er vist nedenfor −

Nå trykker du på den mørke knappen, som vil trekke noen verdi for hver piksel i bildet og dermed gjør en illusjon av mørket. Det er vist nedenfor −

Nå trykker du på den røde knappen, som vil trekke noen verdi for hver piksel i bildet og dermed gjør en illusjon av mørket. Det er vist nedenfor −

Nå trykker du på den grønne knappen, som vil trekke noen verdi for hver piksel i bildet og dermed gjør en illusjon av mørket. Det er vist nedenfor −

Nå trykker du på den blå knappen, som vil trekke noen verdi for hver piksel i bildet og dermed gjør en illusjon av mørket. Det er vist nedenfor −