Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] Da Image a Integer
Forum - C# / VB.NET - [VB.NET] Da Image a Integer - Pagina 2

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
Gianluca87 (Ex-Member)
Expert


Messaggi: 300
Iscritto: 16/11/2008

Segnala al moderatore
Postato alle 23:12
Mercoledì, 11/11/2009
sulla textbox non credo si possa...
cmq ho guardato un pò in giro... e tutti usano la clipboard...probabilmente mi sbaglio io ed è l'unico modo...
http://www.codeproject.com/KB/edit/csexrichtextbox.aspx

PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 23:37
Mercoledì, 11/11/2009
Dalla dichiarazione delle funzione

Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
  (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, _
  ByVal lParam As Object) As Integer

si capisce che come primo parametro vuole l'handle dell'oggetto (hwnd)

Non ho sottomano il net ma ricordo che in vb6 il controllo Image non ha la proprietà hdc, mentre il controllo Picture si.

Per cui se fosse vb6:

SendMessage(Picture.hdc , WM_COPY, 0, 0)

Controlla in vb.net

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 13:00
Giovedì, 12/11/2009
Codifica l'immagine in Base64 e invia un tag del tipo <image data="TestoCriptatoInBase64..."> al client... puoi ottimizzare creando degli id univoci per ogni immagine ed effettuando l'invio dei dati solo se il client non possiede già una copia di quella immagine, ma è una complicazione che non credo tu sia in grado di affrontare in questo momento...

:)

EDIT: ovviamente il client dovrà riconvertire lo stream in Base64, salvare il risultato, riaprire il file salvato come immagine e usare la clipboard per "appiccicarla" nella finestra della chat... :)

Ultima modifica effettuata da TheKaneB il 12/11/2009 alle 13:01
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 15:26
Giovedì, 12/11/2009
Per favore, non voglio vedere post del tipo "se fosse vb6 sarebbe così", perchè VB.NET NON E' una riedizione di VB6, e di simile ha solo la sintassi.

Ricordo, inoltre, che la codifica a base 64 occupa circa il 25% in più di spazio, e non è ottimale per un programma che scambia dati in rete. Puoi spedire l'immagine direttamente come stream di dati.

Tuttavia, la tua richiesta non è ben chiara. Vuoi che digitando un certo codice appaia una certa immagine (cosa che fa messenger)? In questo caso, basta lavorare in locale e la clipboard va bene: quando il messaggio verrà inviato, sarà comunque solo testo e l'altro client lo riconvertirà in immagine.
Se, al contrario, vuoi spedire proprio l'immagine, fai come ho detto prima inviando direttamente il flusso di dati: magari potresti comprimerlo con un algoritmo, ad esempio Deflate, per aumentare la velocità di scambio.

PM Quote
Avatar
LittleHacker (Member)
Guru


Messaggi: 1033
Iscritto: 28/04/2009

Segnala al moderatore
Postato alle 16:07
Giovedì, 12/11/2009
Testo quotato

Postato originariamente da Il Totem:

Per favore, non voglio vedere post del tipo "se fosse vb6 sarebbe così", perchè VB.NET NON E' una riedizione di VB6, e di simile ha solo la sintassi.

Ricordo, inoltre, che la codifica a base 64 occupa circa il 25% in più di spazio, e non è ottimale per un programma che scambia dati in rete. Puoi spedire l'immagine direttamente come stream di dati.

Tuttavia, la tua richiesta non è ben chiara. Vuoi che digitando un certo codice appaia una certa immagine (cosa che fa messenger)? In questo caso, basta lavorare in locale e la clipboard va bene: quando il messaggio verrà inviato, sarà comunque solo testo e l'altro client lo riconvertirà in immagine.
Se, al contrario, vuoi spedire proprio l'immagine, fai come ho detto prima inviando direttamente il flusso di dati: magari potresti comprimerlo con un algoritmo, ad esempio Deflate, per aumentare la velocità di scambio.


Vorrei inviarlo sotto forma di stringa...

PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 17:12
Giovedì, 12/11/2009
Non mi sembra di aver postato una procedura complicatissima in vb6

in fin dei conti la differenza mi sembra sia solo  .hdc(vb6) e .handle(.net)

Per cui dire:
< non voglio vedere post del tipo "se fosse vb6 sarebbe così" >
mi sembra eccessivo.

Volevo solo cercare di spiegare perchè, secondo me, c'è l'errore in :

SendMessage(Image1 'Qui mi dà l'errore , WM_COPY, 0, 0)

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 17:21
Giovedì, 12/11/2009
Testo quotato

Postato originariamente da Il Totem:
[...]

Ricordo, inoltre, che la codifica a base 64 occupa circa il 25% in più di spazio, e non è ottimale per un programma che scambia dati in rete. Puoi spedire l'immagine direttamente come stream di dati.

[...]



Concordo pienamente con te, ma è un metodo utile se si ha il vincolo di inviare stringhe in formato testuale, come nel caso del protocollo usato dai mail server ad esempio... Non so come funzioni il protocollo usato da LittleHacker ma, se invia correttamente delle stringhe testuali, potrà sicuramente inviare un file codificato in Base64.
Se, invece, avesse la possibilità di inviare uno stream "raw" di dati ancora meglio, potrebbe impacchettare il file compresso tramite Deflate, LZMA o altri algoritmi.

Ciao!

Ultima modifica effettuata da TheKaneB il 12/11/2009 alle 17:22
PM Quote
Avatar
LittleHacker (Member)
Guru


Messaggi: 1033
Iscritto: 28/04/2009

Segnala al moderatore
Postato alle 17:21
Giovedì, 12/11/2009
Allora ho trovato il modo di "appiccichare" l'immagine nella RitchTextBox con questo codice, utilizzando una picturebox(quel codice di prima non andava neanche se lo prendevo a cali):
Codice sorgente - presumibilmente VB.NET

  1. Sub InsertImageIntoRtb(ByVal rtb As RichTextBox, ByVal img As Image)
  2.         Clipboard.SetDataObject(img)
  3.         rtb.Paste()
  4.     End Sub



però adesso ho un'altro problema e cioè che l'emoticon non me la inseriscie nella linea dove si trova la stringa ma in alto a sinistra...la domanda è: come faccio a mettere l'emoticon dove c'è la stringa ad esempio:

Littlehacker Scrive >> Ciao come va?
Pinco scrive >> Ciao Bene bene :)

come faccio ad inserirla dove c'è la faccina? :k::hail:

PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo