نمایش نتایج 1 تا 11 از 11

نام تاپیک: تقسیم عکس

  1. #1
    کاربر دائمی آواتار sobhangh
    تاریخ عضویت
    آذر 1387
    پست
    106
    تشکر کردن
    48
    4 بار تشکر شده در 3 پست

    Cool تقسیم عکس

    سلام
    میخوام برنامه ام وقتی عکسی رو اپن می کنه اون را به نه قسمت مساوی تقسیم کنه و هر قسمت را توی یک image قرار بده.
    اگه ممکنه دوستان کمک کنند.
    اگر فرمت عکس هم مهمه دوستان بهم بگن.

  2. #2
    کاربر دائمی آواتار sobhangh
    تاریخ عضویت
    آذر 1387
    پست
    106
    تشکر کردن
    48
    4 بار تشکر شده در 3 پست

    نقل قول: تقسیم عکس

    دوستان اگر کسی می دونه راهنمایی کنه.
    می خوام برنامه عکس رو تقسیم کنه و هر قسمت را توی یک image بگذاره.
    تاحالا همه حالی رو که وقتی جواب سوالی رو نمیدونند تجربه کردند پس لطفا سریعتر جوب بدهید.
    با تشکر

  3. #3
    کاربر دائمی آواتار Hamid.Kad
    تاریخ عضویت
    آبان 1385
    محل زندگی
    پُشت هیچستانم...
    پست
    349
    تشکر کردن
    38
    94 بار تشکر شده در 88 پست

    نقل قول: تقسیم عکس

    کلاس TBitMap یک تابع داره بنام ScanLine که یک خط را از تصویری که توش لود شده میخونه. هر پیکسل رو در سه بایت میخونه که هر بایتش به ترتیب میزان رنگ قرمز، سبز و آبیه (RGB). مثلاً اگه پهنای تصویر 100 باشه خط اول از تصویر در یه آرایه یک بعدی 300 سلولی ذخیره میشه. حالا شما میتونید خونه های این آرایه رو توی پیکسلهای یه Bitmap جدید قرار بدید. خیلی مختصر گفتم. اگه درست نشد بفرمائید مثالش رو براتون بنویسم.
    فرض کنید سطر اول رو توی آرایه P خونده باشیم. در اینصورت اولین پیکسل از تصویر برابر هست با:
    Bmp1.Canvas.Pixels[0]=RGB(P[2],P[1],P[0]);
    آخرین ویرایش به وسیله Hamid.Kad : سه شنبه 03 آذر 1388 در 22:45 بعد از ظهر
    یک نفر دیشب مُرد. و هنوز ، نان گندم خوب است. و هنوز ، آب می ریزد پایین ، اسب ها می نوشند...

  4. #4
    کاربر دائمی
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اصفهان
    پست
    204
    تشکر کردن
    53
    67 بار تشکر شده در 60 پست

    نقل قول: تقسیم عکس

    سلام دوست عزيز؛

    از راهنماي دلفي، دستورات BrushCopy و StretchDraw و Draw را نگاه كنيد.
    در صورتي كه متوجه نشديد، بگيد تا من يا دوستان، بيشتر توضيح بديم...


    يا علي... موفق باشيد...

  5. #5
    کاربر دائمی آواتار mossaferin
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تهران
    پست
    281
    تشکر کردن
    97
    122 بار تشکر شده در 79 پست

    نقل قول: تقسیم عکس

    سلام
    یه نگاهی هم به دستور copyrect بنداز برای اینکاری که می خوای انجام بدی ، راحتترین و سریعترینه

    موفق باشی
    خداوند بی نهایت است و لامکان و بی زمان



    مگر از زندگی چه میخواهید که در خدایی خدا یافت نمیشود؟


    تقدیم به دوستداران

    دلفی

    محیط لینوکس

  6. #6
    کاربر دائمی آواتار دلفــي
    تاریخ عضویت
    مهر 1388
    محل زندگی
    ایران
    پست
    417
    تشکر کردن
    161
    330 بار تشکر شده در 181 پست

    Lightbulb نقل قول: تقسیم عکس

    >> اگر برای انجام کاری بزرگ ، زمان نداری <<
    >> بهتر است بی درنگ آن را به دیگران بسپاری <<

    ... فردوسی ...

  7. #7
    کاربر دائمی آواتار sobhangh
    تاریخ عضویت
    آذر 1387
    پست
    106
    تشکر کردن
    48
    4 بار تشکر شده در 3 پست

    نقل قول: تقسیم عکس

    سلام با تشکر
    در جواب دوست اول: منظورتون این بود که عکس رو رنگ رنگ می کنه؟ یعنی این کد شما عکس رو رنگ رنگ جدا میکرد؟ راستش درست متوجه نشدم پس اگه ممکنه بیشتر تویح بدید؟
    دوستان دیگه هم گفته بودن برم توی Help صادقانه بگم help ارور داد گویا این قسمتش خرابه و نمی تونست بخونه! شانس دیگه!
    دوست دیگه ای که برنامه گذاشته بودند هم که عکس رو تیکه کردند. و برای تیکه کردن سایز داده بودن. من که نمی دونم عکس به چه سایزی اپن می شه تازه سوال من این بود که قرار 9 قسمت بشه و هر قسمت توی یک عکس قرار بگیره؟
    با تشکر از دوستان.
    منتظر پاسخ شما استادان.

  8. #8
    کاربر دائمی آواتار Hamid.Kad
    تاریخ عضویت
    آبان 1385
    محل زندگی
    پُشت هیچستانم...
    پست
    349
    تشکر کردن
    38
    94 بار تشکر شده در 88 پست

    نقل قول: تقسیم عکس

    در جواب دوست اول: منظورتون این بود که عکس رو رنگ رنگ می کنه؟
    یه مثال میزنم امیدوارم کمک کنه. کد زیر رو ملاحظه بفرمائید:
      P:PByteArray;
    for i:=0 to (mainIMG.height div 3) do
    begin
    p:=MainIMG.ScanLine[I];
    for j:=0 to (MainIMG.Width div 3) do
    begin
    NewIMG.Canvas.Pixels[i,j]:= RGB(p[3*j+2],P[3*j+1],P[3*j]);[
    end;
    end;

    در حقیقت با این دستورات از هر سطر عکس، پیکسلها خونده میشن. مثلاً به ازای اولین پیکسل گوشه سمت چپ بالا سه تا خونه آرایه P پُر میشه. یکی میزان رنگ قرمز، یکی سبز و دیگری هم میزان رنگ آبی این پیکسل رو نشون میدن. حالا توی تصویر جدید (NewIMG) این سه تا رنگ رو با تابع RGB ترکیب کرده و دوباره توی تصویر جدید میریزیم. با اجرای این دستورات اگر فرض کنیم که قرار باشه عکس اصلی به 9 تا عکس (3*3) تبدیل بشه، عکس گوشه سمت چپ بالا استخراج میشه (توی NewIMG)

    البته احتمالاً روشهای ساده تری هم وجود داره. چیزی که به ذهن من رسید این روش بود. امیدوارم مفید بوده باشه.
    یک نفر دیشب مُرد. و هنوز ، نان گندم خوب است. و هنوز ، آب می ریزد پایین ، اسب ها می نوشند...

  9. #9
    کاربر دائمی
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اصفهان
    پست
    204
    تشکر کردن
    53
    67 بار تشکر شده در 60 پست

    نقل قول: تقسیم عکس

    استفاده از روشي كه آقاي حميد.كد گفتند، سرعت كمي داره به خاطر اين كه با پيكسل‌ها كار مي‌كنه.

    در مورد كدي كه دوست خوبم، آقاي/خانم دلفي نوشته بودند، كافيه شما به جاي ابعادي كه ايشون دادند، يه متغير قرار بديد كه مقدار اون را هنگامي كه تصوير را لود مي‌كنيد، به صورت زير انتساب بديد:

    MyWidth := LoadedImage.Width div 3;
    MyHeight := LoadedImage.Height div 3;

    يا علي... موفق باشيد...

  10. #10
    کاربر دائمی آواتار sobhangh
    تاریخ عضویت
    آذر 1387
    پست
    106
    تشکر کردن
    48
    4 بار تشکر شده در 3 پست

    نقل قول: تقسیم عکس

    سلام
    p:=MainIMG.ScanLine[i];

    این خط ارور می ده و من نمی دونم چیکار کنم. یه پازل نوشم که قراره عکس رو باز کنه و توی جاها قرار بده اما تا حالا حتی با اهنمایی های شما موفق نشدم. اگه میشه ارور این خط رو حل کنید.

  11. #11
    کاربر دائمی آواتار Hamid.Kad
    تاریخ عضویت
    آبان 1385
    محل زندگی
    پُشت هیچستانم...
    پست
    349
    تشکر کردن
    38
    94 بار تشکر شده در 88 پست

    نقل قول: تقسیم عکس

    چه خطایی میده ؟
    یک نفر دیشب مُرد. و هنوز ، نان گندم خوب است. و هنوز ، آب می ریزد پایین ، اسب ها می نوشند...

بوک مارک کردن این تاپیک

بوک مارک کردن این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •