arkadaşlar bmp resmi forma ekleyip kesme işlemi yapmak ile ilğili örnekler var ama
forma açmadan kesip kestiğimiz parçayı formda göstermemiz mümkün mü?
teşekkürler..
bmp resmi formda açmadan kesme uygulamak?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: bmp resmi formda açmadan kesme uygulamak?
runtimeda nesneleri yaratıp, kesme işleminden sonra ekranda görürnen nesneye aktarılabilir sanırım.
Re: bmp resmi formda açmadan kesme uygulamak?
Bu isteğini gigapixel projemde uygulamıştım. Büyük ölçek ve boyutlu resimleri parçalara ayırarak bağımsız dosyalar halinde adresleyip sadece bakılan yöndeki resim parçalarını ekrana yansıtarak çok hızlı görüntüleme / haritalama üzerine kullanıyorum. Resmi yüklemeden işlem yapmak demek direkt dosya üzerinde filestream bazlı çalışma yapmak demektir.
Resim dosyanın boyutu konusunda sıkıntı yoksa @mkysoft 'un da altını çizdiği şekilde ekrandan gizlediğin bir TIMage nesnesine resmi alıp, üzerinde bölme yapıp sonra kullanmayı denersen ar-ge konusunda zamandan kazanısın. Eğer benim yaptığım gibi yapmak istersen öncelikle BMP dosya formatı hakkındaki temel yapısal bilgileri etüd etmelisin.
Resim dosyanın boyutu konusunda sıkıntı yoksa @mkysoft 'un da altını çizdiği şekilde ekrandan gizlediğin bir TIMage nesnesine resmi alıp, üzerinde bölme yapıp sonra kullanmayı denersen ar-ge konusunda zamandan kazanısın. Eğer benim yaptığım gibi yapmak istersen öncelikle BMP dosya formatı hakkındaki temel yapısal bilgileri etüd etmelisin.
Re: bmp resmi formda açmadan kesme uygulamak?
teşekkürler arkadaşlar
Re: bmp resmi formda açmadan kesme uygulamak?
http://www.simdesign.nl/nativejpg.html
http://www.efg2.com/Lab/Graphics/VeryLargeBitmap.htm
http://jpegclub.org/jpegtran/
Örnek olabilecek bir kod
http://www.efg2.com/Lab/Graphics/VeryLargeBitmap.htm
http://jpegclub.org/jpegtran/
Örnek olabilecek bir kod
Kod: Tümünü seç
procedure GetBitmapTile(BM: TBitmap; Y, X: Integer);
var JpegImage: TJpegImage;
begin
JpegImage := NIL; // Replace with tile lookup //
BM.PixelFormat := pf32bit;
BM.Width := JpegImage.Width;
BM.Height := JpegImage.Height;
BM.Canvas.Draw(0, 0, JpegImage);
end;
procedure WriteBitmapFile(TileCountY, TileCountX: Integer; BM_Stm: TStream);
var
BM: TBitmap;
TileY: Integer;
TileX: Integer;
PixelY: Integer;
begin
BM := TBitmap.Create;
for TileY := 0 to TileCountY-1 do
for TileX := 0 to TileCountX-1 do
begin
GetBitmapTile(BM, TileY, TileX);
for PixelY := 0 to 511 do
BM_Stm.Write(BM.ScanLine[PixelY]^, 512 * SizeOf(TRGBQuad));
end;
BM.Free;
end;