Конференция "Media" » Векторный рисунок из Worda [D7, WinXP]
 
  • thvfrjd (11.02.09 10:24) [0]
    Сохранить как TBitmap через буфер обмена как?
    Т. е. фактически нужен вставить в Image рисунок нарисованный в Worde.
  • aik © (11.02.09 14:21) [1]
    Ничего не понял…
    Если тебе надо ставить картинку из буфера то эт есть в справочнике:
    Image1.Picture.Bitmap.Assign (Clipboard)
  • thvfrjd (11.02.09 15:06) [2]
    Image1.Picture.Bitmap.Assign (Clipboard) - это не работает
    фишка в том что картинка в Worde - векторная, а Image.Bitmap - это TBitmap (растровый рисунок) и соответственно выдается ошибка. Если я из паинта так делаю то работает а мне нужно векторный из Worda вставить.
  • Jeer © (11.02.09 20:26) [3]

    > Если я из паинта так делаю то работает а мне нужно векторный
    > из Worda вставить.


    Давно из песочницы ?

    Меня просто умиляют запросы пепсикол - "ну-ка, быстренько тут мне расскажите, как атом на части поделить"
  • Сергей М. © (11.02.09 22:51) [4]

    > выдается ошибка


    Секретная ?
  • thvfrjd (11.02.09 23:35) [5]

    >
    > > выдается ошибка
    >
    >
    > Секретная ?

    unsupported clipboard format
  • thvfrjd (11.02.09 23:37) [6]
    Если из Worda в паинт вставляешь векторный рисунок через буфер то он вставляется как растровый
    вот и мне так надо вставить в Image
  • Сергей М. © (12.02.09 08:23) [7]
    Если "unsupported clipboard format", значит клипборд не содержит данные в формате CF_BITMAP

    Для начала просмотри клипборд на предмет содержащихся в нем форматов кроме CF_METAFILE
  • thvfrjd (12.02.09 10:36) [8]

    > Если "unsupported clipboard format", значит клипборд не
    > содержит данные в формате CF_BITMAP
    >
    > Для начала просмотри клипборд на предмет содержащихся в
    > нем форматов кроме CF_METAFILE

    в клипборде после копирования из ворда содержится следующее: CF_METAFILE и CF_PICTURE

    Можно в Image.bitmap как то вставить картинку?

    я пробовал
    ris:=tpicture.create
    ris.assaign(clipdoard)
    image.picture.bitmap.assaign(ris.bitmap)
    ошибки не выдается  - вставляется пустая картинка
  • Сергей М. © (12.02.09 11:07) [9]

    > вставляется пустая картинка


    А ты установи Stretch=True и удивись)

    К тому же нет необходимости создавать отдельный TPicture:

    image.picture.Assign(Clipboard)
  • thvfrjd (12.02.09 12:45) [10]

    > А ты установи Stretch=True и удивись)
    >

    Если мы делаем image.picture.Assign(Clipboard)
    то впринципе  рисунок вставляется
    но вот picture.bitmap - который я потом сохраняю в БД - остается пустым
    я чета не совсем понимаю чем отличается Tpicture от TBitmap
  • Сергей М. © (12.02.09 12:51) [11]

    > picture.bitmap - который я потом сохраняю в БД - остается
    > пустым


    Чем докажешь ?


    > не совсем понимаю чем отличается Tpicture от TBitmap


    В справке же написано чем..
  • thvfrjd (12.02.09 13:36) [12]

    >
    > Чем докажешь ?

    ris1:=tpicture.Create;
    ris1.Assign(clipboard);
    //image1.Picture.Assign(ris1) - рисунок вставляется;
    а если делать вот так-image1.Picture.Bitmap.Assign(ris1.Bitmap) то вставляется пустой
    разве ris1.bitmap не должен содержать растр рисунка?
  • Сергей М. © (12.02.09 13:57) [13]

    > thvfrjd   (12.02.09 13:36) [12]


    В упор не вижу никакого сохранения в БД
  • thvfrjd (12.02.09 14:08) [14]

    > В упор не вижу никакого сохранения в БД

    Тут сохранения в БД нету это потом BItmap в БД сохраняется

    Просто если делать вот так
    ris1:=tpicture.Create;
    ris1.Assign(clipboard);
    image1.Picture.Bitmap.Assign(ris1.Bitmap) то почему вставляется пустой рисунок?
    разве ris1.bitmap не должен содержать растр рисунка?
  • Сергей М. © (12.02.09 14:21) [15]
    Получается не должен)
  • thvfrjd (12.02.09 14:28) [16]

    > Получается не должен)
    >


    А поскольку в БД вставляется не Picture а Bitmap
    то как то можно Bitmap заполнить? или в двух строках кода так не получится?
  • Сергей М. © (12.02.09 14:55) [17]
    Через метафайл будет проще:

    Metafile := TMetaFile.Create;
    Bitmap := TBitmap.Create;
    try
      MetaFile.Assign(clipboard);
      with Bitmap do
      begin
        Height := Metafile.Height;
        Width := Metafile.Width;
        Canvas.Draw( 0 , 0 , MetaFile);
        Bitmap.SaveToFile('Test.bmp');
      end;
    finally
     Bitmap.Free;
     MetaFile.Free;
    end;

  • thvfrjd (12.02.09 15:30) [18]
    спасибо))
  • fason (02.07.10 15:58) [19]
    Вопрос похожий, как вставить изображение из буфера, скопированное в Лотусе, там похоже свой формат, Делфи говорит, что не поддерживает, хотя распознает как CF_BITMAP
    С Вордом прокатило!!!
    Помогите с Лотусом пожалуйста.
 
Конференция "Media" » Векторный рисунок из Worda [D7, WinXP]
Есть новые Нет новых   [134427   +38][b:0][p:0.001]