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

نام تاپیک: یک سوال درباره تصویر و متغییر

  1. #1

    یک سوال درباره تصویر و متغییر

    سلام دوستان :)
    من یک برنامه می خوام بنویسم به شکل زیر


    Private Sub Command1_Click()
    picdata = Picture1.Picture
    End Sub

    Private Sub Picture2_Click()
    Picture2.Picture = picdata
    End Sub



    که هروقت رو دکمه 1 کلیک کردم تصویر داخل متغییر picdata ذخیره بشه بعد هر وقت رو دکمه 2 کلیک کردم تصویر از متغییر فرا خوانی بشه

    در حقیقت یک حافظه مجازی می خوام برای نگهداشتن تصویر و فراخوانی اون
    من نمیخوام از clipboard استفاده کنم.و یا اینکه تصویر رو تو یک فایل با عنوان tmp نگهداری کنم. اگه ممکن هست من رو راهنمایی کنید :)

  2. #2
    سلام دوست عزیز،
    کافیه شما یک متغیر از جنس StdPicture تعریف کنین، بعد به عنوان واسطه ازش استفاده کنین. البته اگر جنس متغیر رو معرفی نکنین، به صورت پیش فرض Variant در نظر گرفته میشه که باز هم کار شما رو انجام میده.

    Dim tmpPic As StdPicture
    Set tmpPic = Picture1
    Picture2 = tmpPic

    در اینجا فرض کردیم Picture1 و Picture2 هر دو PictureBox هستن.
    موفق باشین،
    امین ثباتی MCSD

  3. #3
    :) سلام
    آقا قربون دست ممنون

  4. #4

  5. #5
    یک سوال دیگه :roll:
    آیا میشه تصویر داخل یک همچین متغییری یا عکس درون یک picture رو بصورت باینری داخل یک متغیر string و یا متغییر byte ذخیره کرد؟
    من می خوام به کمک متغییر تصویر رو جابجا کنم :roll:

  6. #6
    سعید جان،
    بین کجا و کجا جابجا کنی؟ وقتی تصویرت در متغیر باشه حتی بین COM Objectها هم میتونی این کار رو انجام بدی.
    ممکنه بیشتر توضیح بدین

  7. #7
    راستشو بخوایی من می خوام برنامه ای بنویسم که از وب کم عکس بگیره بعد این عکس رو به کمک winsock به یک کامپیوتر دیگه ارسال کنه.
    البته ocx پیدا کردم که مربوط به وب کم هست ولی نمی خوام با ocx کارمو انجام بدم
    برای اینکار باید طی یک زمان مشخص از وب کم عکس گرفته بشه و این عکس به picturebox منتقل میشه حالا من می خوام عکس داخل این picture box مستقیما ارسال بشه و داخل picture box طرف مقابل دیده بشه.
    خوب مشکل اینجاست که winsock فقط اطلاعات string و یا مشابه اون رو ارسال میکنه. :roll:

    من یک راه به نظرم رسید اون هم اینکه عکس داخل picturbox رو با دستور savepicture ذخیره کنم بعد عکس رو ارسال کنم بعد توطرف مقابل عکس رو داخل picturbox لود کنم. اما این روش یک مشکل بزرگ داره
    اولا اینکه عکس بصورت bmp ذخیره میشه بنابرین عکسبرداری و بعد ذخیره سازی تو هارد دیسک و ارسال فایل بصورت همزمان زمان بر هست و سیستم تقریبا از کار میافته یعنی سیستم کند میشه :(

    بخاطر این دنبال روشی میگردم که عکس رو وارد یک متغییر کنم و مستقیما متغییر رو ارسال کنم تا این مشکل پیش نیاد اما نمیدونم یک عکس رو چطور میتونم وارد یک متغییر کنم البته از نوع string یا binary یا متغییری که با winsock قابل شناسایی باشه :|

  8. #8
    سعید جان در کدی که براتون نوشتم شما در حقیقت اطلاعات باینتری فایل تصویر رو به داخل متغیر میبرین. WinSock این قابلیت رو داره که اطلاعات رو به فرمت غیر از String هم دریافت کنه. من در MSDN مطالب متنوعی در این مورد دیدم:

    Knowledge Base

    HOWTO: Send and Receive UDT's Using the Winsock ControlPSS ID Number: Q152058

    Article Last Modified on 11-8-2001


    --------------------------------------------------------------------------------
    The information in this article applies to:

    Microsoft Visual Basic Standard Edition, 32-bit, for Windows 4.0
    Microsoft Visual Basic Professional Edition, 32-bit, for Windows 4.0
    Microsoft Visual Basic Enterprise Edition, 32-bit, for Windows 4.0
    Microsoft Internet ActiveX Controls 1.0

    --------------------------------------------------------------------------------


    Summary
    The Winsock control methods SendData and GetData send and receive data through an argument declared of type variant. The following variant types are supported:

    Byte vbByte
    Integer vbInteger
    Long vbLong
    Single vbSingle
    Double vbDouble
    Currency vbCurrency
    Date vbDate
    Boolean vbBoolean
    SCODE vbError
    String vbString
    Byte Array vbArray + vbByte
    Because user-defined types are not directly supported, you must make use of the byte-array data type in order to pass a user-defined type with the Winsock control. This article demonstrates how to send and receive data contained in a user-defined type with the Winsock Control.



    More Information
    The example uses the Winsock TCP client and server created in the following Microsoft Knowledge Base article:

    Q152057 HOWTO: Create & Use a Client/Server Using Winsock TCP Controls
    Prior to following this example, make sure you have at least built the framework for the client and server discussed in the aforementioned article. You will be required to make modifications to the DataArrival Event subroutine and the SendData Command subroutine.
    Step by Step Example
    Enter the following code in the General declarations section of Form1 of both the client and server:

    Private Declare Sub CopyMemory Lib "KERNEL32" Alias "RtlMoveMemory" (_
    hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)

    Private Type MyType
    i As Integer
    l As Long
    s As String * 8
    d As Double
    End Type



    Enter the following code for the DataArrival Event subroutine in the Winsock server:

    Private Sub TCP1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
    Dim vta
    Dim mt As MyType
    Dim bt() As Byte
    TCP1(Index).GetData vta, vbArray + vbByte, LenB(mt)
    bt = vta
    CopyMemory mt, bt(0), LenB(mt)
    Debug.Print mt.i; ","; mt.l; ","; mt.s; ","; mt.d
    End Sub



    Enter the following code for the SendData Command button in the Winsock client:
    Private Sub cmdSendData_Click()
    Dim mt As MyType
    mt.i = 99
    mt.l = 33
    mt.s = "abcd"
    mt.d = 23.76
    Dim bt() As Byte
    ReDim bt(LenB(mt)) as Byte
    Dim vtdata As Variant
    CopyMemory bt(0), mt, LenB(mt)
    vtdata = bt
    TCP1.SendData vtdata
    End Sub




    Additional query words:

    Keywords: kbnetwork kbAPI kbSDKPlatform kbVBp400 kbWinsock kbGrpDSNet
    Issue Type:
    Technology: kbVBSearch kbAudDeveloper kbZNotKeyword kbActiveXICSearch kbVB400Search kbVB400 kbActiveXIC



    --------------------------------------------------------------------------------

    Send feedback to Microsoft

    © 2002 Microsoft Corporation. All rights reserved.


    و اما کد:

    Open "D:\MyPic.jpg" For Binary As #1
    Dim str1 As String
    str1 = Space(FileLen("D:\MyPic.jpg"))
    Get #1, , str1
    Close #1
    Open "D:\D:\MyNewPic.jpg" For Binary As #1
    Put #1, , str1
    Close #1


    امیدوارم در حد یک سر نخ کوچیک کمکت کنه!
    موفق باشین،
    امین ثباتی MCSD

  9. #9
    دوست عزیز من که گفتم استفاده از فایل حالا به هر صورت مشکل زا هست و من نمیخوام تصویر ذخیره بشه تو هارد و با این کدی که شما نوشتید باید اول تصویر تو هارد ذخیره بشه بعد توسط کد شما فراخوانی شده به متغییر وارد بشه :roll: من میخوام مستقیما تصویر از picturbox به یک متغییر منتقل بشه :|

    برای انتقال تصویر از picturebox به یک متغییر چه راحی وجود داره؟ :|

  10. #10
    :( کسی نمیتونه به من کمک کنه؟

  11. #11
    سعید جان من اگر جای شما باشم روی DCOM وقت بیشتری صرف میکنم تا winsock. اگر چه DCOM نکات ظریف و خاص خودش رو داره، اما دستتون به مراتب بازتره برای نوشتن چنین نرم افزاری.

  12. #12
    میشه درباره Dcom یک خورده بیشتر توضیح بدی؟

  13. #13
    تا به حال ActiveX DLL درست کردین؟

  14. #14
    ocx اره اما dll نه
    میشه یک خوره همچین بیشتر توضیح بدی؟

تاپیک های مشابه

  1. تغییر ارتفاع lineبا تغییر ارتفاع Textbox در گزارش
    نوشته شده توسط payam59 در بخش Access
    پاسخ: 22
    آخرین پست: یک شنبه 03 شهریور 1387, 15:41 عصر
  2. تغییر اندازه ارتفاع QRShape با تغییر ارتفاع DetailBand
    نوشته شده توسط mojtaba_z در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: پنج شنبه 07 تیر 1386, 07:49 صبح
  3. تغییر Toolbar با تغییر Thems ویندوز XP
    نوشته شده توسط na3er-faraji در بخش VB.NET
    پاسخ: 2
    آخرین پست: پنج شنبه 06 مهر 1385, 12:08 عصر
  4. غیر قابل تغییر کردن فرم about تغییر desktop تو vb
    نوشته شده توسط Payman62 در بخش برنامه نویسی در 6 VB
    پاسخ: 8
    آخرین پست: یک شنبه 31 اردیبهشت 1385, 11:12 صبح
  5. تغییر در PHPbb (تغییرات خیلی کلی)
    نوشته شده توسط nasr در بخش PHP
    پاسخ: 4
    آخرین پست: جمعه 05 فروردین 1384, 12:06 عصر

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

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