![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Kak umen'shit' bitmap kartinku, umen'shit' koli4estvo pikselev??? [D7, WinXP]
NeedHelp © (2005-01-22 00:38:00)Mastera podskazhiti pozhalujsta, kak umen'shit' bitmap?? Ato u menja problema, ja predpolagaju 4to bitmap kartinka slishkom bol'shaja, slishkom horoshego ka4estva, i izza etogo ejo nepolu4aetsja sohranit' v daze dannih =(( voot.. esli kto mozhet pomo4, to pomogiti =)) podskazhite kak umen'shit' koli4estvo pikselev v bitmap???
GotHelp (2005-01-22 03:20:00) [1]Defuct, spasibo =))
Segodnja probovat' nebudu.. ustala =((
A zavtra ja nadejus' ona zarabotaet tak kak nado =))))
Spasibo vsem za pomosh =))
Defunct (2005-01-22 03:03:00) [2]Создать картинку фиксированного размера (ее потом сохранять в базу) и нарисовать на ней открытую картинку.
var
b1, b2: TBitmap;
begin
b1 := TBitmap.Create;
try
b1.LoadFromFile('...');
b2 := TBitmap.Create;
try
b2.Width := 200;
b2.Height := 200;
b2.Canvas.StretchDraw( Rect(0,0,200,200), B1);
// сохраняем b2 в базу
finally
b2.free
end
finally
b1.free
end
end;
NeedHelp (2005-01-22 02:50:00) [3]=)) tjaaks
1.
Bitmap.Free; JPEG.Free; - vi navernoe nezametili no oni nahodjatsja posle expect , no ja 4utok sej4as peredelala strukturu. shas lu4she =)
2.
DMFriends-TDataModule
tFriends-TTable
3. a v tretih ja neponjala vopros =((( nuu vot =((
Sej4as kod vigljadit tak:
procedure TfEdit.LoadClick(Sender: TObject);
var
bmph,bmpw, dif:integer;
JPEG: TJPEGImage;
Bitmap: TBitmap;
begin
JPEG := TJPEGImage.Create;
Bitmap := TBitmap.Create;
try
begin
JPEG.LoadFromFile(OpenPictureDialog.FileName);
Bitmap.Assign(JPEG);
// opredeljaet parametri bitmap, i umen'shaet image okono sohranjaja proporcii
bmph:= Bitmap.Height;
bmpw:= Bitmap.Width;
if bmph>bmpw then
begin
DBImage1.Height:=160;
DBImage1.Width:=120;
// dif:=bmph div 125;
// DBImage1.height:=bmph div dif;
// DBImage1.width:=bmpw div dif;
end;
if bmph<bmpw then
begin
DBImage1.Height:=120;
DBImage1.Width:=160;
// dif:=bmpw div 125;
// DBImage1.height:=bmph div dif;
// DBImage1.width:=bmpw div dif;
end;
DBImage1.Picture.Assign(Bitmap);
DMFriends.tFriendsPhoto.Assign(DBImage1.Picture);
Bitmap.Free;
JPEG.Free;
end;
except
begin
DMFriends.tFriendsPhoto.LoadFromFile(OpenPictureDialog.FileName);
end;
end;
end;
No tak i tak vikidivaet tabli4ku "Bitmap image is not valid" pri zagruzki kartinki, a glavnoe kogda ja zagruzhaju kartinku s formatom 800 x 600 to programka rabotaet no kogda zagruzhaju kartinki 1600 x 1200 =(( k sozhaleniju programka vibrasivaet etu oshibku =(
poetomu ja i hotela izmenit'razmer kartinki.. a kak eto sdelat'??? neznaju.. pomogite pozhalujsjtaaa
Jel (2005-01-22 02:11:00) [4]Во-первых Bitmap и JPEG будут освобожден только если возникнет исключение - вызов Free для них находится в блоке except.
Во-вторых - DMFriends.tFriendsPhoto.Assign(DBImage1.Picture);
что такое tFriendsPhoto и DMFriends?
В третьих - что происходит при попытке компиляции кода, и если он компилируется, что происходит при его запуске?
NeedHelp (2005-01-22 01:20:00) [5]nu ili hotjabi podskazhite kak ispol'zovat' StretchBlt funkciju?? Ja neumeju =( .. budu o4en' blagodarna esli pomozhite =))
NeedHelp (2005-01-22 00:50:00) [6]eh.. kod dovol'notaki glinnij =)) no nadejus' vi smozhite mne pomo4' =)) eto izmu4alaaaas' =((
procedure TfEdit.LoadClick(Sender: TObject);
var
bmph,bmpw, dif:integer;
JPEG: TJPEGImage;
Bitmap: TBitmap;
begin
JPEG := TJPEGImage.Create;
Bitmap := TBitmap.Create;
try
begin
JPEG.LoadFromFile(OpenPictureDialog.FileName);
Bitmap.Assign(JPEG);
// opredeljaet parametri bitmap, i umen'shaet image okono sohranjaja proporcii
bmph:= Bitmap.Height;
bmpw:= Bitmap.Width;
if bmph>bmpw then
begin
dif:=bmph div 125;
DBImage1.height:=bmph div dif;
DBImage1.width:=bmpw div dif;
end;
if bmph<bmpw then
begin
dif:=bmpw div 125;
DBImage1.height:=bmph div dif;
DBImage1.width:=bmpw div dif;
end;
DBImage1.Picture.Assign(Bitmap);
DMFriends.tFriendsPhoto.Assign(DBImage1.Picture);
end;
except
begin
DMFriends.tFriendsPhoto.LoadFromFile(OpenPictureDialog.FileName);
end;
Bitmap.Free;
JPEG.Free;
end;
end;
Jel (2005-01-22 00:43:00) [7]StretchBlt? Но врядли она из-за размера не сохраняется в базе. Покажи лучше код.
PS если не трудно используй http://www.translit.ru/