Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];

Вниз

как передать результат снития скриншота по сетке ?   Найти похожие ветки 

 
Ghost   (2003-05-19 07:59) [0]

Большая просьба не перекидывать этот вопрос в "потрепаться" , я уже задавал этот вопрос но его перекинули и забыли :(

Вот сам вопрос : я снимаю скриншот экрана с помощью вот такого кода :
function ImageDesktopToBMP: TBitmap;
var DtDC: HDC;begin
Result := TBitmap.Create; Result.Width := Screen.Width; Result.Height := Screen.Height;
DtDC := GetDC(0);BitBlt(Result.Canvas.Handle, 0, 0, Result.Width,Result.Height, DtDC, 0, 0, SRCCOPY);
ReleaseDC(0, DtDC)end;


function print: Integer; stdcall;
var bmp: TBitmap;jpg: TJPEGImage; begin
try bmp := ImageDesktopToBMP; jpg := TJPEGImage.Create; jpg.CompressionQuality := 65;
jpg.Assign(bmp); jpg.SaveToFile(ExtractFilePath(paramstr(0))+"ps\img.jpg");
freeAndNil(jpg); FreeAndNil(bmp);
except on EAccessViolation do ;end;end;

вызываеться функция print ( из dll ) которая преобразует результат полученой картинки с помощью функции ImageDesktopToBMP
( bmp ) в jpg и сохраняет его на диске. Вопрос как не сохраняя
полученый результат на диск передать его по сети ( так как сохранение в файл очень сильно тормозит компьютер )

Подскажите пожайлуста .


 
Ghost   (2003-05-19 08:01) [1]

Передачу по сети файлов я знаю как делать. Только не знаю как передать результат скриншота


 
Digitman   (2003-05-19 10:15) [2]

зачем файл-то нужен для этой цели ?

используй методы SaveToStream/LoadFromStream для сохранения в поток и загрузки из потока

поток - объект класса TMemoryStream, адрес поточных данных - св-во TMemoryStream.Memory, размер поточных данных - TMemoryStream.Size.


 
Ghost   (2003-05-19 11:21) [3]

спасибо , подскажите пожайлусто как в обычный компонент image поместить поток ! я делаю так : image1.Picture.Bitmap.LoadFromStream но при получении потока в image не отображаеться картинка :( как правельно помещать поток в image ?


 
Digitman   (2003-05-19 11:55) [4]

var
MyStream: TMemoryStream;


MyStream := TMemoryStream.Create;
try

//сохраняем данные компонента SourceJPEGImage в поток

SourceJPEGImage.SaveToStream(MyStream);

//считываем из потока данные в компонент TargetJPEGImage

MyStream.Position := 0; // !!

TargetJPEGImage.LoadFromStream(MyStream);

finally
MyStream.Free;
end;









 
Ghost   (2003-05-19 12:48) [5]

что за компонент TargetJPEGImage ?
в обычную image не получаеться загрузить , хотя передать потоком
получилось :)



 
Digitman   (2003-05-19 13:04) [6]


> Ghost


о ,господи, воля твоя !))

ну думать-то головой будем ?)

вот твоя строчка

var jpg: TJPEGImage;

а вот моя

var SourceJPEGImage, TargetJPEGImage: TJPEGImage;

найди различия)))


 
Ghost   (2003-05-19 13:17) [7]

мы по моему не поняли немного друг друга

передаю потоком ! всё ок , но при получении не могу вставить в image, хотя могу сохранить на диске ( из чего следует что передача прошла успешно )
делаю так :

MyStream.Position := 0;
form1.Image1.picture.Bitmap.LoadFromStream(MyStream);

в MyStream уже есть данные с картинкой

В итоге в image ybabuf не отображаеться


 
Digitman   (2003-05-19 13:28) [8]

1.

вот две строчки :

эта - рекомендуемая мной

TargetJPEGImage.LoadFromStream(MyStream);

а эта - та что у тебя не работает (но которую ты упрямо почему-то цитируешь раз за разом)

Image1.picture.Bitmap.LoadFromStream(MyStream);

где и Image1 и TargetJPEGImage есть ссылки на существующие объекты класса TJPEGImage

разницу хоть какую-нибудь ощущаешь ?)

2. Вопрос твой - в разделе "Сети". Хотя причем здесь именно сеть - мне совершенно непонятно.


 
ghost   (2003-05-19 13:38) [9]

> 2. Вопрос твой - в разделе "Сети". Хотя причем здесь именно сеть - мне совершенно непонятно.

Потому что вопрос начинался с передачи потока по сети ,

1 извени за тормоза но я не понял как отобразить в image TargetJPEGImage ? может я гоню уже , но не могу врубиться !
получаю поток как ты посоветовал выше в TargetJPEGImag

как теперь это отобразить ?


 
Digitman   (2003-05-19 14:26) [10]

procedure TForm1.Button4Click(Sender: TObject);
var
bmp: TBitmap;
MemStream: TMemoryStream;
SourceJPEGImage, TargetJPEGImage: TJPEGImage;
begin
SourceJPEGImage := TJPEGImage.Create;
TargetJPEGImage := TJPEGImage.Create;
try
SourceJPEGImage.CompressionQuality := 65;
bmp := ImageDesktopToJPEG;
try
SourceJPEGImage.Assign(bmp);
finally
bmp.Free;
end;
MemStream := TMemoryStream.Create;
try
SourceJPEGImage.SaveToStream(MemStream);

MemStream.Position := 0;
TargetJPEGImage.LoadFromStream(MemStream);

with Image1.Picture do
begin
if not Assigned(Bitmap) then
Bitmap := TBitmap.Create;
Graphic.Assign(TargetJPEGImage);
end;


finally
MemStream.Free;
end;
finally
TargetJPEGImage.Free;
SourceJPEGImage.Free;
end;
end;


 
app   (2003-05-19 14:44) [11]

Повторное задание вопроса равносильно спаму, тем более в другой конференции, далее просто думай, где задавать вопрос, тебе еще повезло, по идее его лучше было удалить.


 
Digitman   (2003-05-19 14:49) [12]

да еще и не по теме вопрос)


 
Ghost   (2003-05-19 14:53) [13]

Спасибо всем ! я уже разобрался :)



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.01 c
1-77877
void1987
2003-07-14 00:51
2003.07.24
Дочернияя форма поверх всех остальных?


1-77962
Appa
2003-07-11 08:04
2003.07.24
TMonthCalendar


1-77940
SergeyI
2003-07-10 16:33
2003.07.24
TQuickRep как с ним работать ?


1-77983
Vasilii
2003-07-11 13:22
2003.07.24
двойная кнопка


1-77872
Jumbo
2003-07-13 13:13
2003.07.24
Сортировка TListView





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский