Add(Image,2763176,301,266) { Left=20 Top=35 Width=260 Height=205 AutoSize=0 Point(doRefresh) link(onClick,14633685:doData,[]) } Add(InlineCode,14654515,462,266) { WorkPoints=#4:doDs| Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|20: onRes:THI_Event;|0:|45: procedure doDs(var dt:TData; index:word);|0:|5: end;|0:|14:implementation|0:|27:procedure THiAsmClass.doDs;|17:var Clip:PBitmap;|5:begin|22: Clip := ToBitmap(dt);|103: Clip.PixelFormat:=pf8bit; //Можно pf1bit, pf4bit, pf8bit, pf15bit, pf16bit, pf24bit, pf32bit, pfCustom|1: |36: //Ниже - просто мои эксперименты :)|44: //msgbox(int2str(Clip.DIBPalEntries[3]),0);|27: //_hi_OnEvent(onRes,Clip);|4:end;|0:|4:end.| } Add(DoData,14633685,350,266) { link(onEventData,6020300:doEvent1,[]) link(Data,6633695:Var3,[(356,254)(332,254)(332,313)]) } Add(Hub,6020300,406,266) { link(onEvent1,14654515:doDs,[]) link(onEvent2,2763176:doRefresh,[(432,279)(432,244)(284,244)(284,286)]) } Add(PictureStream,13298081,294,350) { Quality=90 link(onLoad,1729089:In,[]) link(Bitmap,6633695:Var2,[]) } Add(GetDataEx,6633695,301,308) { link(Data,2763176:ImageBitmap,[]) } Add(Button,16408695,231,357) { Left=75 Top=5 Caption="сохр" Data=String(C:\\test.bmp) link(onClick,13298081:doSave,[]) } Add(Button,14948470,119,343) { Left=20 Top=5 Caption="откр" Data=String(C:\\test.bmp) link(onClick,4893013:doExecute,[]) } Add(ODialog,4893013,168,343) { link(onExecute,13298081:doLoad,[(247,349)(247,356)]) } Add(LineBreak,11519428,231,266) { link(Out,2763176:doLoad,[]) Primary=[1729089,112,84] }
В общем, формат пикселей задаёт кол-во цветов (в InlineCode). pf8bit - 256 цветов, pf1bit - 2 цвета и т. д. Там написано, что можно подставлять. pf24bit - обычная RGB картинка по 8 бит на канал. А вообще, в KOL.pas всё это есть. Но только вот при сохранении в jpg это не учитывается, и размер не уменьшается с кол-вом цветов. При сохр. в bmp - учитывается. Подходит? Редактировалось 1 раз(а), последний 2018-08-03 11:56:37
|