1 / 1 / 0 Регистрация: 24.03.2015 Сообщений: 206 |
|
1 |
|
01.06.2015, 22:32. Показов 17639. Ответов 35
Очень нужна помощь!
0 |
1 / 1 / 0 Регистрация: 14.09.2014 Сообщений: 372 |
|
02.06.2015, 01:21 |
2 |
Я себе тоже пробовал подключить jpeg но он не работал. Пришлось мучаться с bmp. Однако, твоя ошибка у меня тоже появлялась. Была она из-за кривого формата картинки. И поэтому пришлось пересохранять.
0 |
1 / 1 / 0 Регистрация: 24.03.2015 Сообщений: 206 |
|
02.06.2015, 14:02 [ТС] |
3 |
Дело в том что я пробовал кидать картинки с расширением bmp, выскакивала таже самая ошибка.
0 |
1 / 1 / 0 Регистрация: 14.09.2014 Сообщений: 372 |
|
02.06.2015, 19:39 |
4 |
P.S. пересохранял картинки чере паинт, мб из-за этого? 256 bmp
0 |
1 / 1 / 0 Регистрация: 24.03.2015 Сообщений: 206 |
|
02.06.2015, 22:06 [ТС] |
5 |
Что такое 256 bmp?
0 |
21 / 9 / 3 Регистрация: 24.05.2014 Сообщений: 60 |
|
02.06.2015, 22:10 |
6 |
Какая СУБД?
Что такое 256 bmp? Полагаю это количество изображений.
0 |
1 / 1 / 0 Регистрация: 14.09.2014 Сообщений: 372 |
|
03.06.2015, 02:57 |
7 |
Что такое 256 bmp? при сохранении в паинте выбирай 256
0 |
1 / 1 / 0 Регистрация: 24.03.2015 Сообщений: 206 |
|
03.06.2015, 09:01 [ТС] |
8 |
Есть ещё какие варианты решения проблемы???
0 |
Модератор 3488 / 2611 / 741 Регистрация: 19.09.2012 Сообщений: 7,971 |
|
03.06.2015, 10:06 |
9 |
Покажи код загрузки картинок и текста.
0 |
1 / 1 / 0 Регистрация: 24.03.2015 Сообщений: 206 |
|
03.06.2015, 10:12 [ТС] |
10 |
Кода нет. Картинки загрузил в бд , подключил компонент dbimage (подключил data source , указал data field — фото).
0 |
Модератор 3488 / 2611 / 741 Регистрация: 19.09.2012 Сообщений: 7,971 |
|
03.06.2015, 10:20 |
11 |
Так
В базе данных я указал путь к картинке или сами картинки хранятся в БД? Если картинки в формате jpeg, то в DbImage они выводиться не будут — он понимает только bmp. В этом случае надо использовать Image и писать код загрузки.
0 |
1 / 1 / 0 Регистрация: 24.03.2015 Сообщений: 206 |
|
03.06.2015, 10:55 [ТС] |
12 |
Да , картинки хранятся в БД. Дело в том что я пробовал и jpeg and bmp — безрезультатно!
0 |
Модератор 3488 / 2611 / 741 Регистрация: 19.09.2012 Сообщений: 7,971 |
|
03.06.2015, 11:04 |
13 |
Я хочу при переключении на другого игрока , чтоб менялась картинка. Это можно сделать и через image, меняя картинку в обработчике события ДатаСета OnAfterScroll.
0 |
1 / 1 / 0 Регистрация: 24.03.2015 Сообщений: 206 |
|
03.06.2015, 11:15 [ТС] |
14 |
Не могли бы скинуть код? или же источник , где я могу его посмотреть.
0 |
FIL Модератор 3488 / 2611 / 741 Регистрация: 19.09.2012 Сообщений: 7,971 |
||||
03.06.2015, 11:25 |
15 |
|||
Пример:
0 |
1 / 1 / 0 Регистрация: 24.03.2015 Сообщений: 206 |
|
03.06.2015, 12:46 [ТС] |
16 |
Извините , я не много не понимаю что с этим кодом делать… Я вписал его в AfterScroll у компонента ADOQuery , а как быть дальше? надо ли что то подключать у компонента image?
0 |
Модератор 3488 / 2611 / 741 Регистрация: 19.09.2012 Сообщений: 7,971 |
|
03.06.2015, 12:49 |
17 |
Надо вписать свое имя поля вместо ‘Picture’.
0 |
1 / 1 / 0 Регистрация: 24.03.2015 Сообщений: 206 |
|
03.06.2015, 12:57 [ТС] |
18 |
Да и ещё , у меня не был подключен adoquery , у меня был подключён компонент adotable , насколько я знаю adoquery — мастер запросов , разве он нужен?
0 |
Модератор 3488 / 2611 / 741 Регистрация: 19.09.2012 Сообщений: 7,971 |
|
03.06.2015, 13:10 |
19 |
разве он нужен? Я привел лишь пример из своего приложения.
0 |
1 / 1 / 0 Регистрация: 24.03.2015 Сообщений: 206 |
|
03.06.2015, 13:13 [ТС] |
20 |
После этого кода картинки должны выводиться в image?
0 |
|
|
|
Загрузка изображения из БД «Bitmap is not valid»
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
есть таблица и в ней есть 3 поля типа «Поле объекта ОЛЕ» так вот изображения я помещать прямо в аксесе через CTRL+V и теперь хочу отобразить картинку через DBImage запускаю и выкатывается ошибка «Bitmap is not valid» на строчке
procedure InvalidGraphic(Str: PResStringRec); begin raise EInvalidGraphic.CreateRes(Str); end; модуля Graphics что разве DBImage не поддерживает отображение картинок форматов jpg и bmp? |
dron-s |
|
а не пробывала считывать через поток картинку из БД? |
Сан Иваныч |
|
Оля! Не поленись полазить в ПОИСКЕ — работа с BLOB-полями И не только в Дельфях, но и в Билдере. |
olga90 |
|
если успользовать DBCtrlGrid с вкладки DataControls (он мне нужен для отображения по 5 записей из таблицы БД) значение ColCount = 1,значение RowCount = 5 и при отображении изображений из поля они во всех Имейджах одинаковые — ведь это на DB_компонент
function GetStreamImgType(Stream: TStream): TGraphicClass; var StreamPos: int64; ImgSign: string; begin StreamPos := Stream.Position; try //BMP Result := Graphics.TBitmap; //JPEG SetLength(ImgSign, 4); Stream.Seek(6, soFromCurrent); Stream.Read(ImgSign[1],4); if (UpperCase(ImgSign) = ‘JFIF’) or (UpperCase(ImgSign) = ‘EXIF’) then begin Result := Jpeg.TJPEGImage; Exit; end; //WMF Stream.Position := StreamPos; SetLength(ImgSign, 4); Stream.Read(ImgSign[1],4); if ImgSign = #$D7#$CD#$C6#$9A then //see WMFKey begin Result := Graphics.TMetafile; Exit; end; //PNG Stream.Position := StreamPos; SetLength(ImgSign, 3); Stream.Seek(1, soFromCurrent); Stream.Read(ImgSign[1],3); if (UpperCase(ImgSign) = ‘PNG’) then begin Result := PNGImage.TPNGImage; Exit; end; finally Stream.Position := StreamPos; end; end; /// procedure LoadProperImage(Stream: TStream; Picture: TPicture); var Img: TGraphic; StreamPos: int64; begin StreamPos := Stream.Position; Img := GetStreamImgType(Stream).Create; try Stream.Position := StreamPos; Img.LoadFromStream(Stream); Wid := img.Width; hei := img.Height; Picture.Graphic := Img; finally Img.Free; end; end; function LoadPictureFromBLOB(Picture: TPicture; Field: TBlobField): boolean; var Stream: TStream; begin Result := False; if not Field.isNULL then begin Stream := TMemoryStream.Create; try Field.SaveToStream(Stream); Stream.Position := 0; LoadProperImage(Stream, Picture); Result := True; finally Stream.Free; end; end; end; и
procedure TForm1.FormCreate(Sender: TObject); begin Image1.Picture.Bitmap.FreeImage; LoadPictureFromBLOB(image1.Picture, AdoTable1.FieldByName(‘SMALL_IMAGE’) as TBLOBField); end; получается что во всех имейджах одинаковые картинки как быть тогда |
olga90 |
|
а если кинуть компонент DBImage и выставить нужное поле, то в дизайн-тайме сразу отображается картинка этот компонент недоделанный что-ли |
volvo877 |
|
Оля, посмотри в Королевстве Дельфи, было довольно много обсуждений ошибки «Bitmap image is not valid». В частности — здесь: |
dron-s |
|
olga90
Image1.Picture.Bitmap.FreeImage; LoadPictureFromBLOB(image1.Picture, AdoTable1.FieldByName(‘SMALL_IMAGE’) as TBLOBField); на какое событие? |
olga90 |
|
Цитата dron-s @ 13.08.07, 14:32 olga90
Image1.Picture.Bitmap.FreeImage; LoadPictureFromBLOB(image1.Picture, AdoTable1.FieldByName(‘SMALL_IMAGE’) as TBLOBField); я уже писала — на onCreate формы |
dron-s |
|
Цитата olga90 @ 13.08.07, 16:28 я уже писала — на onCreate формы
ну и что ты тогда хочешь от этого кода? |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- Delphi: Базы данных
- Следующая тема
[ Script execution time: 0,0436 ] [ 16 queries used ] [ Generated: 28.05.23, 19:57 GMT ]
murad.88
Гость |
Как отобразить в DBImage рисунок находяшийся в *.mdb (Access) |
||
|
murad.88
Гость |
Пишу след. код: procedure TForm4.ADOTable1AfterScroll(DataSet: TDataSet); Но вылетает Ошибка: Incompatible types: ‘TBlobField’ and ‘TField’ |
||
|
Oldy
Команда клуба
|
Что в USES? |
||
С уважением, Oldy. |
zubr
Гость |
Ну если используется DBImage, то зачем вообще так делать? Тогда DBImage надо связать с соответствующим полем ‘Photo’. А если уж таким способом делать, то лучше с TImage: Image1.Picture.Assign(TBlobField(DataModule2.ADOTable1.FieldByName(‘Photo’))); |
||
|
murad.88
Гость |
Ну если используется DBImage, то зачем вообще так делать? Тогда DBImage надо связать с соответствующим полем ‘Photo’. А Так когда я связываю с полем Photo в свойствах DBImage то выходит ошибка «bitmap image is not valid». |
||
|
murad.88
Гость |
Что в USES? uses |
||
|
zubr
Гость |
murad.88, значит у тебя в БД не битмап (bmp), а возможно какой то другой формат (jpg, gif, png и т. п.). Если это так тогда надо сначала получить имидж в нужном формате, к примеру: If TBlobField(query.FieldByName(‘Photo’)).BlobSize>0 then P.S. Извини неправильно код написал в своем предыдущем посте, уже исправил. |
||
|
murad.88
Гость |
Вряд ли там другой формат, если только сам Access не изменил его при загрузки bmp-шника в поле Photo procedure TForm4.DBImage1Click(Sender: TObject); Только вот проблема возникла в DMImage постояyно отображается рисунок первого поля DBGrid. |
||
|
zubr
Гость |
murad.88, ты же правильно в предыдущем примере делал — в событии ADOTable1AfterScroll. |
||
|
murad.88
Гость |
ты же правильно в предыдущем примере делал — в событии ADOTable1AfterScroll. Не знаю почему но возникала ИС при ADOTable1AfterScroll, а вот ADOQuery1BeforeScroll все нормально |
||
|
При попытке вставки изображений в БД, методом:
ibdsImage.Insert;
TBlobField(ibdsImage.FieldByName('IMAGE')).LoadFromFile(OpenDialog1.FileName);
ibdsImage.Post;
ibtrMain.CommitRetaining;
на второй строке, ошибка (за исключением файлов с расширением «bmp»):
«exception class EInvalidGraphic with message ‘Bitmap image is not valid’.»
Хотя, эти же изображения у меня загружаются и отображаются на convas формы, и компоненте «Image».
Библиотеки «GraphicEx», «jpeg» давно подключены.
В чем может быть проблема?
when I add Jpeg to my Uses section I get the following error:
Error (0): WARNING. Duplicate resource(s).
ERror (0): Type 10 (RCDATA), ID TFORM1:.
Error (0): File Unit1.DFM resource kept; file jpeg.DFM resource discarded.
—— code ———-
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Jpeg;
type
TForm1 = class(TForm)
Image1: TImage;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
var
Bitmap : TBitmap;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
Bitmap := TBitmap.Create;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
With Image1 do begin
Bitmap.LoadFromFile(‘d:homepageblueline.jpg’);
Picture.Bitmap := Bitmap;
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Bitmap.Free;
end;
end.