Android Open Source - Operation-Valkyrie Ascii






From Project

Back to project page Operation-Valkyrie.

License

The source code is released under:

Terms and conditions Preamble: This Agreement, signed on Jun 10, 2012 [hereinafter: Effective Date] governs the relationship between the Enduser, a private person, (hereinafter: Licensee) and Paul N...

If you think the Android project Operation-Valkyrie listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package valkyrie.filter.ascii;
/*from   w  w  w  .j ava  2s  .  com*/
import java.util.Vector;

import org.opencv.core.Mat;
import org.opencv.highgui.Highgui;

import valkyrie.colorpicker.ColorPicker;
import valkyrie.filter.FilterAssets;
import valkyrie.filter.FilterInternalStorage;
import valkyrie.filter.IFilter;
import valkyrie.main.R;
import valkyrie.ui.MainActivity;
import android.app.Activity;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.util.Log;
import android.view.LayoutInflater;
import android.widget.CompoundButton;
import android.widget.SeekBar;
import android.widget.TableLayout;
import android.widget.ToggleButton;

/**
 * 
 * COPYRIGHT: Paul Neuhold, Laurenz Theuerkauf, Alexander Ritz, Jakob
 * Schweighofer, Milo Tischler ? Milo Tischler, Jakob Schweighofer, Alexander
 * Ritz, Paul Neuhold, Laurenz Theuerkauf
 * 
 */

/**
 * The Ascii class handles the Ascii filter classes like fonts and converter
 * 
 * @author Paul Neuhold, Laurenz Theuerkauf, Alexander Ritz, Jakob
 * Schweighofer, Milo Tischler 
 *
 */
public class Ascii implements IFilter {
  public static final String TAG = "Ascii";

  private Font activeFont;
  private Converter converter;
  private TableLayout layout;
  private SharedPreferences options;

  private Vector<Font> fonts;
  private String fontsList[] = { "test1" };

  public static final String name = "ascii";
  private boolean colorMode;

  public Ascii() {
    this.fonts = new Vector<Font>();
    for (String name : this.fontsList) {
      this.fonts.add(new Font(name, true));
    }

    this.activeFont = this.fonts.get(0);

    this.converter = new Converter();
  }

  /**
   * creates ascii image out of source for realtime preview very fast :)
   * color and graysale can be switched
   * @param Mat
   * @return Bitmap
   */
  public Bitmap manipulatePreviewImage(Mat bitmapMat) {
    if (this.colorMode) {
      return this.converter.colorToASCII(bitmapMat, this.activeFont.getInvertLUT());
    } else {
      return this.converter.grayscaleToASCII(bitmapMat, this.activeFont.getLUT());
    }
  }

  /**
   * creates ascii image out of source matrix for shot image
   * fast version not implemented yet
   */
  public Bitmap manipulateImage(Mat bitmapMat) {
    if (this.colorMode) {
      return this.converter.colorToASCII(bitmapMat, this.activeFont.getInvertLUT());
    } else {
      return this.converter.grayscaleToASCII(bitmapMat, this.activeFont.getLUT());
    }
  }

  public int getFilterCaptureFormat() {
    if (this.colorMode) {
      return Highgui.CV_CAP_ANDROID_COLOR_FRAME_RGB;
    } else {
      return Highgui.CV_CAP_ANDROID_GREY_FRAME;
    }
  }

  /**
   * Returns the defined UI-Elements for the Options Panel as whole
   * RelativeLayout. TODO: vl hamma hier falsch herum gedacht, es w?re wsh eine methode setUIElements besser,
   * bei dieser bekommt der filter sein inflatetes layout und kann nachher die listener drauf setzen und braucht somit
   * kein context objekt mehr!
   * 
   * @param mainActivity
   *            Activity, the main activity of the Program. Gives us access to
   *            the LayoutInflater.
   */
  public TableLayout getUIElements(Activity mainActivity) {
    final LayoutInflater inflater = (LayoutInflater) mainActivity
        .getSystemService(MainActivity.LAYOUT_INFLATER_SERVICE);

    this.layout = (TableLayout) inflater.inflate(R.layout.ascii, null);

    ColorPicker backgroundcolorPicker = (ColorPicker) this.layout.findViewById(R.id.backgroundcolor);

    backgroundcolorPicker.setColorChangeListener(new ColorPicker.ColorChangeListener() {

      public void colorChanged(int color) {
        converter.setBackgroundcolor(color);
      }
    });

    ColorPicker foregroundcolorPicker = (ColorPicker) this.layout.findViewById(R.id.foregroundcolor);

    foregroundcolorPicker.setColorChangeListener(new ColorPicker.ColorChangeListener() {

      public void colorChanged(int color) {
        converter.setForegroundColor(color);
      }
    });

    SeekBar fontsizeSeekBar = (SeekBar) this.layout.findViewById(R.id.ascii_option_fontsize);
    fontsizeSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {

      public void onStopTrackingTouch(SeekBar seekBar) {

      }

      public void onStartTrackingTouch(SeekBar seekBar) {

      }

      public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
        converter.setFontSize(progress);
      }
    });
    
    ToggleButton colorModeButton = (ToggleButton) this.layout.findViewById(R.id.color_mode);
    colorModeButton.setOnCheckedChangeListener(new ToggleButton.OnCheckedChangeListener() {
      
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        colorMode = isChecked;
      }
    });

    return this.layout;
  }

  public String getName() {
    return this.getClass().getSimpleName();
  }

  public Bitmap getIcon() {
    return null;
  }

  public void setup(FilterInternalStorage filterInternalStorage, FilterAssets filterAssets, Boolean firstRun) {

  }
}




Java Source Code List

org.opencv.android.Utils.java
org.opencv.calib3d.Calib3d.java
org.opencv.calib3d.StereoBM.java
org.opencv.calib3d.StereoSGBM.java
org.opencv.core.Algorithm.java
org.opencv.core.Core.java
org.opencv.core.CvException.java
org.opencv.core.CvType.java
org.opencv.core.MatOfByte.java
org.opencv.core.MatOfDMatch.java
org.opencv.core.MatOfDouble.java
org.opencv.core.MatOfFloat4.java
org.opencv.core.MatOfFloat6.java
org.opencv.core.MatOfFloat.java
org.opencv.core.MatOfInt4.java
org.opencv.core.MatOfInt.java
org.opencv.core.MatOfKeyPoint.java
org.opencv.core.MatOfPoint2f.java
org.opencv.core.MatOfPoint3.java
org.opencv.core.MatOfPoint3f.java
org.opencv.core.MatOfPoint.java
org.opencv.core.MatOfRect.java
org.opencv.core.Mat.java
org.opencv.core.Point3.java
org.opencv.core.Point.java
org.opencv.core.Range.java
org.opencv.core.Rect.java
org.opencv.core.RotatedRect.java
org.opencv.core.Scalar.java
org.opencv.core.Size.java
org.opencv.core.TermCriteria.java
org.opencv.features2d.DMatch.java
org.opencv.features2d.DescriptorExtractor.java
org.opencv.features2d.DescriptorMatcher.java
org.opencv.features2d.FeatureDetector.java
org.opencv.features2d.Features2d.java
org.opencv.features2d.GenericDescriptorMatcher.java
org.opencv.features2d.KeyPoint.java
org.opencv.highgui.Highgui.java
org.opencv.highgui.VideoCapture.java
org.opencv.imgproc.Imgproc.java
org.opencv.imgproc.Moments.java
org.opencv.imgproc.Subdiv2D.java
org.opencv.ml.CvANN_MLP_TrainParams.java
org.opencv.ml.CvANN_MLP.java
org.opencv.ml.CvBoostParams.java
org.opencv.ml.CvBoost.java
org.opencv.ml.CvDTreeParams.java
org.opencv.ml.CvDTree.java
org.opencv.ml.CvERTrees.java
org.opencv.ml.CvGBTreesParams.java
org.opencv.ml.CvGBTrees.java
org.opencv.ml.CvKNearest.java
org.opencv.ml.CvNormalBayesClassifier.java
org.opencv.ml.CvParamGrid.java
org.opencv.ml.CvRTParams.java
org.opencv.ml.CvRTrees.java
org.opencv.ml.CvSVMParams.java
org.opencv.ml.CvSVM.java
org.opencv.ml.CvStatModel.java
org.opencv.ml.EM.java
org.opencv.ml.Ml.java
org.opencv.objdetect.CascadeClassifier.java
org.opencv.objdetect.HOGDescriptor.java
org.opencv.objdetect.Objdetect.java
org.opencv.photo.Photo.java
org.opencv.utils.Converters.java
org.opencv.video.BackgroundSubtractorMOG.java
org.opencv.video.BackgroundSubtractor.java
org.opencv.video.KalmanFilter.java
org.opencv.video.Video.java
valkyrie.colorpicker.ColorPickerDialog.java
valkyrie.colorpicker.ColorPicker.java
valkyrie.file.DecodeBitmaps.java
valkyrie.file.FileManager.java
valkyrie.filter.FilterAssets.java
valkyrie.filter.FilterInternalStorage.java
valkyrie.filter.FilterManager.java
valkyrie.filter.FilterUIPosition.java
valkyrie.filter.IFilter.java
valkyrie.filter.ascii.Ascii.java
valkyrie.filter.ascii.Converter.java
valkyrie.filter.ascii.Font.java
valkyrie.filter.ascii.Options.java
valkyrie.filter.canny.Canny.java
valkyrie.filter.grayscale.Grayscale.java
valkyrie.filter.nofilter.NoFilter.java
valkyrie.ui.IUpdateableUI.java
valkyrie.ui.LayoutManager.java
valkyrie.ui.MainActivity.java
valkyrie.ui.UpdateableRelativeLayout.java
valkyrie.ui.gallery.AboutActivity.java
valkyrie.ui.gallery.GalleryActivity.java
valkyrie.ui.gallery.ImageAdapter.java
valkyrie.ui.gallery.ShowPicActivity.java
valkyrie.ui.preview.CameraPreviewViewCV.java
valkyrie.widget.MultiDirectionSlidingDrawer.java
valkyrie.widget.TouchImageView.java