PDA

View Full Version : تبدیل یک صفحه htm به عکس



reza_azizi2010
جمعه 22 آذر 1392, 10:14 صبح
سلام
من میخام یک صفحه که توی webview نمایش داده میشه رو به عکس تبدیل کنم.
مثلا من یکسری کارت پستال دارم که میخام کاربر روی اون یک یه پیام بنویسه و بعدش کلش با هم تبدیل به یه عکس بشه.
حالا اگه توی webview هم نمایش نداد اشکال نداره، فقط متن رو از کاربر بگیره و روی یک قسمت خاص از عکس بچسبونه
ممنون میشم راهنمایی کنید

reza_azizi2010
جمعه 22 آذر 1392, 21:09 عصر
دوستان، کسی در این مورد اطلاعات نداره؟!

rubiks.kde
جمعه 22 آذر 1392, 22:17 عصر
دقیقا میخوایی چیکار کنی؟روی یه عکس متنی بنویسی؟یا یه قسمت از webview رو به عکس تبدیل کنی؟

reza_azizi2010
شنبه 23 آذر 1392, 00:22 صبح
من یسری عکس دارم، که گکاربر میتونه رو عکسها یه پیام بنویسه مثل کارت پستال. اولش به ذهنم رسید عکسهارو بذارم تو وب ویو و متن رو روش بذارم و بعدش کپچر کنم. تو سایت stackoveflow یه چیزایی نوشته بدچود اما نفهمیدم.!
کلا میخام روی عکس یه متنی که کاربر وارد میکنه نوشته بشه و بصورت یع عکس جدید ذخیره بشه که کاربر بتونه ایمیلش کنه یا بلوتوث یا هرچی. البته متن دقیقا باید یه جای مشخص نوشته بشه. و ابعاد عکس رو هم بشه مشخص کرد.

rubiks.kde
شنبه 23 آذر 1392, 00:32 صبح
خوب شما عکس مورد نظر رو با bitmap لود کن بعد توی موقعیت مورد نظر متن رو بنویس

مثل این مورد :

public Bitmap drawTextToBitmap(Context gContext, int gResId, String gText) {
Resources resources = gContext.getResources();
float scale = resources.getDisplayMetrics().density;
Bitmap bitmap = BitmapFactory.decodeResource(resources, gResId);

android.graphics.Bitmap.Config bitmapConfig = bitmap.getConfig();
// set default bitmap config if none
if(bitmapConfig == null) {
bitmapConfig = android.graphics.Bitmap.Config.ARGB_8888;
}
// resource bitmaps are imutable,
// so we need to convert it to mutable one
bitmap = bitmap.copy(bitmapConfig, true);

Canvas canvas = new Canvas(bitmap);
// new antialised Paint
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
// text color - #3D3D3D
paint.setColor(Color.rgb(61, 61, 61));
// text size in pixels
paint.setTextSize((int) (14 * scale));
// text shadow
paint.setShadowLayer(1f, 0f, 1f, Color.WHITE);

// draw text to the Canvas center
Rect bounds = new Rect();
paint.getTextBounds(gText, 0, gText.length(), bounds);
int x = (bitmap.getWidth() - bounds.width())/2;
int y = (bitmap.getHeight() + bounds.height())/2;

canvas.drawText(gText, x, y, paint);

return bitmap;
}

این تابع یه عکس رو از بین resource لود میکنه و متن رو روی اون منویسه و خروجی رو به صورت bitmap برمیگردونه و میتونید ذخیره کنید .

reza_azizi2010
شنبه 23 آذر 1392, 22:08 عصر
ممنون سعید جان
فقط یه چیزی
الان تست کردم دیدم تصویر خروجی تغییر ابعاد داده.
فکر کنم با توجه به سایز گوشی، ابعاد عکس تغییر میکنه
نمیشه کاری کرد سایز عکس تغییر نکنه؟