public class ImageSaveTask extends AsyncTask<String, Void, Void> {    private Context context;    private TebriKarti tebriKarti;    public ImageSaveTask(Context context, TebriKarti tebriKarti) {        this.context = context;        this.tebriKarti = tebriKarti;    }    @Override    protected Void doInBackground(String... params) {        try {            File f = new File(context.getExternalCacheDir(), "TebrikKarti/" + tebriKarti.getLink().substring(0, tebriKarti.getLink().indexOf("/")) + "/");            //Eğer dosya yoksa oluştur            if (!f.exists()) {                f.mkdirs();            }            File soundFile = new File(context.getExternalCacheDir(),                    "TebrikKarti/" + tebriKarti.getLink() + ".jpg");            if (!soundFile.exists()) {                int count;                URL url = new URL(context.getResources().getString(R.string.api_tebrik_karti) + tebriKarti.getLink() + ".jpg");                URLConnection conection = url.openConnection();                conection.connect();                InputStream input = new BufferedInputStream(url.openStream(), 8192);                File dowlandFile = new File(context.getExternalCacheDir(), "TebrikKarti/" + tebriKarti.getLink() + ".jpg");                FileOutputStream outStream;                outStream = new FileOutputStream(dowlandFile);                byte[] data = new byte[4096];                while ((count = input.read(data)) != -1) {                    outStream.write(data, 0, count);                }                outStream.flush();                outStream.close();                input.close();            }        } catch (Exception e) {            e.printStackTrace();        }        return null;    }    @Override    protected void onPostExecute(Void aVoid) {        super.onPostExecute(aVoid);        File imgFile = new File(context.getExternalCacheDir(), "TebrikKarti/" + tebriKarti.getLink() + ".jpg");        Bitmap bitmap = addWaterMark(imgFile);        paylasMesaj(bitmap);    }}private Bitmap addWaterMark(File file) {    Bitmap src = BitmapFactory.decodeFile(file.getPath());    int w = src.getWidth();    int h = src.getHeight();    Bitmap result = Bitmap.createBitmap(w, h, src.getConfig());    Canvas canvas = new Canvas(result);    canvas.drawBitmap(src, 0, 0, null);    Bitmap waterMark = BitmapFactory.decodeResource(context.getResources(), R.drawable.main_icon);    Bitmap resizedBitmap = Bitmap.createScaledBitmap(            waterMark, 100, 100, false);    canvas.drawBitmap(resizedBitmap, w - 100, h - 100, null);    return result;}private void paylasMesaj(Bitmap bitmap) {    Intent paylasIntent = new Intent(Intent.ACTION_SEND);    paylasIntent.setType("image/*");    paylasIntent.putExtra(Intent.EXTRA_STREAM, getImageUri(context, bitmap));    context.startActivity(Intent.createChooser(paylasIntent, getSTR(R.string.app_name)));}private Uri getImageUri(Context inContext, Bitmap inImage) {    ByteArrayOutputStream bytes = new ByteArrayOutputStream();    inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);    String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);    return Uri.parse(path);}

Yukarıda ki kod bir resim indirip üstüne logo bastıktan sonra paylaşmaya yarayan bir kod bütünü. Tabi bu sizin işinize kısmen yaramakta uyarlama yapabileceğinizi düşünüyorum.