Android Open Source - PhoneProfiles_Eclipse Bitmap Manipulator






From Project

Back to project page PhoneProfiles_Eclipse.

License

The source code is released under:

Apache License

If you think the Android project PhoneProfiles_Eclipse 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 sk.henrichg.phoneprofiles;
/*w  ww  .ja v a2s .  c  om*/
import java.io.File;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.ColorFilter;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.LightingColorFilter;
import android.graphics.Matrix;
import android.graphics.Paint;

public class BitmapManipulator {
  
  public static Bitmap resampleBitmap(String bitmapFile, int width, int height)
  {
    File f = new File(bitmapFile);
    if (f.exists())
    {
      // first decode with inJustDecodeDpunds=true to check dimensions
      final BitmapFactory.Options options = new BitmapFactory.Options();
      options.inJustDecodeBounds = true;
      BitmapFactory.decodeFile(bitmapFile, options);
      // calaculate inSampleSize
      options.inSampleSize = calculateInSampleSize(options, width, height);
      // decode bitmap with inSampleSize
      options.inJustDecodeBounds = false;
      Bitmap decodedSampleBitmap = BitmapFactory.decodeFile(bitmapFile, options);
      
      return decodedSampleBitmap;
    }
    else
      return null;
  }
  
  public static Bitmap monochromeBitmap(Bitmap bitmap, int value, Context context)
  {
    if (bitmap == null)
      return null;
    
      Bitmap monochromeBitmap = Bitmap.createBitmap(bitmap.getWidth(),
                      bitmap.getHeight(),
                      bitmap.getConfig());
                        //Config.ARGB_8888);

      Canvas canvas = new Canvas(monochromeBitmap);
      Paint paint = new Paint();
      Matrix matrix = new Matrix();

      ColorFilter filter = new LightingColorFilter(0xFFFFFFFF, 0x00FFFFFF);
      paint.setColorFilter(filter);
      canvas.drawBitmap(bitmap, matrix, paint);

      int color = Color.argb(0xFF, value, value, value);
      ColorFilter filter2 = new LightingColorFilter(color, 0x00000000);
      paint.setColorFilter(filter2);
      canvas.drawBitmap(monochromeBitmap, matrix, paint); 
      
      return monochromeBitmap;
  }
  
  public static Bitmap grayscaleBitmap(Bitmap bitmap)
  {
    if (bitmap == null)
      return null;

    Bitmap monochromeBitmap = Bitmap.createBitmap(bitmap.getWidth(),
                          bitmap.getHeight(),
                          bitmap.getConfig());
      Canvas canvas = new Canvas(monochromeBitmap);
      Paint paint = new Paint();
      ColorMatrix colorMatrix = new ColorMatrix();
      colorMatrix.setSaturation(0.0f);
      paint.setColorFilter(new ColorMatrixColorFilter(colorMatrix));
      Matrix matrix = new Matrix();
      canvas.drawBitmap(bitmap, matrix, paint);

      return monochromeBitmap;
  }
  
  private static int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight)
  {
    // raw height and width of image
    final int height = options.outHeight;
    final int width = options.outWidth;
    int inSampleSize = 1;
    
    if (height > reqHeight || width > reqWidth)
    {
      // calculate ratios of height and width to requested height an width
      final int heightRatio = Math.round((float) height / (float) reqHeight);
      final int widthRatio = Math.round((float) width / (float) reqWidth);
      
      // choose the smalest ratio as InSamleSize value, this will guarantee
      // a final image with both dimensions larger than or equal to the
      // requested height and width
      inSampleSize = (heightRatio < widthRatio) ? heightRatio : widthRatio;
    }
    return inSampleSize;
  }
  
}




Java Source Code List

sk.henrichg.phoneprofiles.ActivateProfileActivity.java
sk.henrichg.phoneprofiles.ActivateProfileHelper.java
sk.henrichg.phoneprofiles.ActivateProfileListAdapter.java
sk.henrichg.phoneprofiles.ActivateProfileListFragment.java
sk.henrichg.phoneprofiles.ApplicationsCache.java
sk.henrichg.phoneprofiles.ApplicationsPreferenceAdapter.java
sk.henrichg.phoneprofiles.ApplicationsPreferenceDialog.java
sk.henrichg.phoneprofiles.ApplicationsPreference.java
sk.henrichg.phoneprofiles.BackgroundActivateProfileActivity.java
sk.henrichg.phoneprofiles.BitmapManipulator.java
sk.henrichg.phoneprofiles.BootUpReceiver.java
sk.henrichg.phoneprofiles.BrightnessDialogPreference.java
sk.henrichg.phoneprofiles.BrightnessView.java
sk.henrichg.phoneprofiles.DashClockBroadcastReceiver.java
sk.henrichg.phoneprofiles.DataWrapper.java
sk.henrichg.phoneprofiles.DatabaseHandler.java
sk.henrichg.phoneprofiles.EditorProfileListAdapter.java
sk.henrichg.phoneprofiles.EditorProfileListFragment.java
sk.henrichg.phoneprofiles.EditorProfilesActivity.java
sk.henrichg.phoneprofiles.ExecuteRadioProfilePrefsService.java
sk.henrichg.phoneprofiles.ExecuteVolumeProfilePrefsService.java
sk.henrichg.phoneprofiles.FirstStartService.java
sk.henrichg.phoneprofiles.GUIData.java
sk.henrichg.phoneprofiles.GlobalData.java
sk.henrichg.phoneprofiles.IconWidgetProvider.java
sk.henrichg.phoneprofiles.ImageViewPreferenceAdapter.java
sk.henrichg.phoneprofiles.ImageViewPreferenceDialog.java
sk.henrichg.phoneprofiles.ImageViewPreference.java
sk.henrichg.phoneprofiles.KeyguardService.java
sk.henrichg.phoneprofiles.Keyguard.java
sk.henrichg.phoneprofiles.LocaleChangedReceiver.java
sk.henrichg.phoneprofiles.NumberPickerPreference.java
sk.henrichg.phoneprofiles.OneRowWidgetProvider.java
sk.henrichg.phoneprofiles.PackageReplacedReceiver.java
sk.henrichg.phoneprofiles.PhoneCallBroadcastReceiver.java
sk.henrichg.phoneprofiles.PhoneCallReceiver.java
sk.henrichg.phoneprofiles.PhoneProfilesDashClockExtension.java
sk.henrichg.phoneprofiles.PhoneProfilesHelper.java
sk.henrichg.phoneprofiles.PhoneProfilesPreferencesActivity.java
sk.henrichg.phoneprofiles.PhoneProfilesPreferencesFragment.java
sk.henrichg.phoneprofiles.ProfileDurationAlarmBroadcastReceiver.java
sk.henrichg.phoneprofiles.ProfileListWidgetFactory.java
sk.henrichg.phoneprofiles.ProfileListWidgetProvider.java
sk.henrichg.phoneprofiles.ProfileListWidgetService.java
sk.henrichg.phoneprofiles.ProfilePreferenceAdapter.java
sk.henrichg.phoneprofiles.ProfilePreferenceDialog.java
sk.henrichg.phoneprofiles.ProfilePreference.java
sk.henrichg.phoneprofiles.ProfilePreferencesFragmentActivity.java
sk.henrichg.phoneprofiles.ProfilePreferencesFragment.java
sk.henrichg.phoneprofiles.ProfilePreferencesIndicator.java
sk.henrichg.phoneprofiles.Profile.java
sk.henrichg.phoneprofiles.ReceiversService.java
sk.henrichg.phoneprofiles.RefreshGUIBroadcastReceiver.java
sk.henrichg.phoneprofiles.RemoteExportDataActivity.java
sk.henrichg.phoneprofiles.RemoveBrightnessViewBroadcastReceiver.java
sk.henrichg.phoneprofiles.ScreenOnOffBroadcastReceiver.java
sk.henrichg.phoneprofiles.ShortcutCreatorActivity.java
sk.henrichg.phoneprofiles.ShortcutCreatorListFragment.java
sk.henrichg.phoneprofiles.ShortcutProfileListAdapter.java
sk.henrichg.phoneprofiles.UpgradePPHelperActivity.java
sk.henrichg.phoneprofiles.VolumeDialogPreference.java