{"id":829,"date":"2008-05-30T12:21:06","date_gmt":"2008-05-30T12:21:06","guid":{"rendered":"http:\/\/6teen.ru\/?p=721"},"modified":"2008-05-30T12:21:06","modified_gmt":"2008-05-30T12:21:06","slug":"8939","status":"publish","type":"post","link":"http:\/\/pblog.ru\/lab\/?p=829","title":{"rendered":"\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043b\u044e\u0431\u044b\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439"},"content":{"rendered":"<p>\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043b\u044e\u0431\u044b\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439<br \/>\n<!--more--><\/p>\n<pre class=\"alt2\" style=\"margin:0px; padding:6px; border:1px inset; width:580px; height:320px; overflow:auto\"><div>\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043b\u044e\u0431\u044b\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439\n\n\u0421 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c TImage \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 bmp, jpg \u0438 gif \u044f \u0434\u0435\u043b\u0430\u043b \u044d\u0442\u043e \u0442\u0430\u043a.\n\n\u0417\u0430\u043d\u0435\u0441\u0435\u043d\u0438\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432 TImage \u0438 \u0432 \u0411\u0414:\n\nprocedure TfmMain.btnOpenClick(Sender: TObject);\nvar\n  S: TStream;\nbegin\n  if OpenDialog1.Execute then\n  begin\n    Image1.Picture.LoadFromFile(OpenDialog1.FileName);\n    ADODataSet1.Edit;\n    S := ADODataSet1.CreateBlobStream(ADODataSet1.FieldByName('GRAPHIC'), bmWrite);\n    try\n      Image1.Picture.Graphic.SaveToStream(S);\n    finally\n      S.Free;\n      ADODataSet1.Post;\n    end;\n  end;\nend;\n\n\u0417\u0434\u0435\u0441\u044c \u0432\u0441\u0451 \u043a\u0430\u043a \u0438 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0441 \u0441\u0430\u0439\u0442\u0430 Borland.\n\n\u0427\u0442\u0435\u043d\u0438\u0435 \u0438\u0437 \u0411\u0414 \u0432 TImage \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:\n\nuses ..., JPEG, RxGIF;\n...\nprocedure TfmMain.ShowPicture;\nvar\n  S: TStream;\n  Code: Word;\nbegin\n  \/\/\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0430 \u0435\u0441\u043b\u0438 \u0435\u0433\u043e \u043d\u0435\u0442 \u0432 \u0431\u0430\u0437\u0435, \u0441\u0442\u0438\u0440\u0430\u0435\u0442 TImage\n  if Assigned(Image1.Picture.Graphic) then\n    Image1.Picture := nil;\n  if not ADODataSet1.FieldByName('GRAPHIC').IsNull then\n  begin\n    S := ADODataSet1.CreateBlobStream(ADODataSet1.FieldByName('GRAPHIC'), bmRead);\n    try\n      S.Read(Code, SizeOf(Code));\n      S.Seek(0, 0);\n      case Code of\n      $4D42:\n      begin\n        Image1.Picture.Graphic := TBitmap.Create;\n        Image1.Picture.Graphic.LoadFromStream(S);\n      end;\n      $D8FF:\n      begin\n        Image1.Picture.Graphic := TJPEGImage.Create;\n        Image1.Picture.Graphic.LoadFromStream(S);\n      end;\n      $4947:\n      begin\n        Image1.Picture.Graphic := TGIFImage.Create;\n        Image1.Picture.Graphic.LoadFromStream(S);\n      end;\n      end;\n    finally\n      S.Free;\n    end;\n  end;\nend;\n\n\u0410 \u0432\u043e\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438\u0437 \u0411\u0414 \u0432 \u0444\u0430\u0439\u043b:\n\nprocedure TfmMain.btnSaveClick(Sender: TObject);\nvar\n  S: TStream;\n  FileS: TFileStream;\n  Code: Word;\nbegin\n  \/\/\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432 \u0444\u0430\u0439\u043b \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0435\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430\n  if not ADODataSet1.FieldByName('GRAPHIC').IsNull then\n  begin\n    S := pFIBDataSet1.CreateBlobStream(ADODataSet1.FieldByName('GRAPHIC'), bmRead);\n    try\n      S.Read(Code, SizeOf(Code));\n      S.Seek(0, 0);\n      case Code of\n      $4D42:\n      begin\n        SaveDialog1.Filter := 'Bitmap (*.bmp)|*.bmp';\n        SaveDialog1.DefaultExt := 'bmp';\n      end;\n      $D8FF:\n      begin\n        SaveDialog1.Filter := '\u0424\u0430\u0439\u043b \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 JPEG (*.jpg)|*.jpg';\n        SaveDialog1.DefaultExt := 'jpg';\n      end;\n      $4947:\n      begin\n        SaveDialog1.Filter := '\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 CompuServe GIF (*.gif)|*.gif';\n        SaveDialog1.DefaultExt := 'gif';\n      end;\n      end;\n      if SaveDialog1.Execute then\n        if FileExists(SaveDialog1.FileName) then\n          FileS := TFileStream.Create(SaveDialog1.FileName, fmOpenWrite)\n        else\n          FileS := TFileStream.Create(SaveDialog1.FileName, fmCreate);\n        try\n          FileS.CopyFrom(S, S.Size);\n        finally\n          FileS.Free;\n        end;\n    finally\n      S.Free;\n    end;\n  end;\nend;\n\n\u0417\u0434\u0435\u0441\u044c \u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 jpg \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c Delphi Jpeg, \u0430 \u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 gif \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 Rx (\u043c\u043e\u0434\u0443\u043b\u044c RxGIF).\n\n\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434, \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u043e\u0431\u0449\u0435-\u0442\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432 bmp \u0438 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438\u0445 \u0432 \u0411\u0414 \u0432 \u0435\u0434\u0438\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435. \u0422\u043e\u0433\u0434\u0430 \u043d\u0430\u0434\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0435\u0433\u043e \u0438\u0437 \u0444\u0430\u0439\u043b\u0430, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0432 bmp \u0438 \u043f\u043e\u0442\u043e\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0432 \u0411\u0414.\n\n\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0442\u0430\u043a:\n\nvar\n  J: TJPEGImage;\n...\nImage1.Picture.Bitmap.Assign(J);\n Kraks\n<\/div><\/pre>\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043b\u044e\u0431\u044b\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[397,434],"tags":[727,763,1416,991],"_links":{"self":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts\/829"}],"collection":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=829"}],"version-history":[{"count":0,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=\/wp\/v2\/posts\/829\/revisions"}],"wp:attachment":[{"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=829"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=829"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/pblog.ru\/lab\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=829"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}