Текст (дата) штамп на фото - PullRequest
3 голосов
/ 28 января 2012

Возможно ли объединить текст и фотографию, снятую с камеры?Я хотел бы отметить дату и время на фотографии, но ничего не нашел в Google.

Ответы [ 2 ]

7 голосов
/ 28 января 2012

Используйте приведенный ниже код для достижения того, что вам требуется.

        Bitmap src = BitmapFactory.decodeResource(getResources(), R.drawable.cuty); // the original file is cuty.jpg i added in resources
        Bitmap dest = Bitmap.createBitmap(src.getWidth(), src.getHeight(), Bitmap.Config.ARGB_8888);

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateTime = sdf.format(Calendar.getInstance().getTime()); // reading local time in the system

        Canvas cs = new Canvas(dest);
        Paint tPaint = new Paint();
        tPaint.setTextSize(35);
        tPaint.setColor(Color.BLUE);
        tPaint.setStyle(Style.FILL);
        cs.drawBitmap(src, 0f, 0f, null);
        float height = tPaint.measureText("yY");
        cs.drawText(dateTime, 20f, height+15f, tPaint);
        try {
            dest.compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(new File("/sdcard/timeStampedImage.jpg")));
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

Вы должны использовать нижеуказанное разрешение в файле манифеста.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Если у вас есть какие-либо сомнения, не стесняйтесь спрашивать.Я добавляю отметку времени в верхнем левом углу изображения, вы можете изменить ее на любое место на изображении.

Для моего устройства путь / sdcard для доступа к внешней SD-карте, возможно,различаются для других устройств.Некоторые устройства могут иметь / mnt / sdcard , может быть, это для внутренних SD-карт.Просто проверьте это, прежде чем использовать этот фрагмент кода.

2 голосов
/ 28 января 2012
  • Создание растрового объекта из массива byte [], полученного из обратного вызова изображения JPEG с использованием метода decodeByteArray
  • Создайте объект холста, используя растровое изображение, которое вы создали выше
  • Используйте метод drawText на объекте canvas, чтобы написать текст на фотографии.
...