Gambar::Metode GetBounds (gdiplusheaders.h)
Metode Image::GetBounds mendapatkan persegi panjang pembatas untuk gambar ini.
Sintaks
Status GetBounds(
[out] RectF *srcRect,
[out] Unit *srcUnit
);
Parameter
[out] srcRect
Jenis: RectF*
Penunjuk ke objek RectF yang menerima persegi panjang pembatas.
[out] srcUnit
Jenis: Unit*
Penunjuk ke variabel yang menerima elemen enumerasi Unit yang menunjukkan satuan ukuran untuk persegi panjang pembatas.
Nilai kembali
Jenis: Status
Jika metode berhasil, metode mengembalikan Ok, yang merupakan elemen dari enumerasi Status .
Jika metode gagal, metode mengembalikan salah satu elemen lain dari enumerasi Status .
Keterangan
Persegi panjang pembatas untuk metafile tidak selalu memiliki (0, 0) sebagai sudut kiri atasnya. Koordinat sudut kiri atas bisa negatif atau positif, tergantung pada perintah gambar yang dikeluarkan selama perekaman metafile. Misalnya, metafile terdiri dari satu elipsis yang direkam dengan pernyataan berikut:
DrawEllipse(&pen, 200, 100, 80, 40);
Kemudian persegi panjang pembatas untuk metafile akan mengapit satu elips tersebut. Sudut kiri atas persegi panjang pembatas tidak akan (0, 0); sebaliknya, itu akan menjadi titik dekat (200, 100).
Contoh
Contoh berikut membuat objek Gambar berdasarkan metafile lalu menggambar gambar. Selanjutnya, kode memanggil metode Image::GetBounds untuk mendapatkan persegi panjang pembatas untuk gambar. Kode ini membuat dua upaya untuk menampilkan 75 persen gambar. Upaya pertama gagal karena menentukan (0, 0) untuk sudut kiri atas persegi panjang sumber. Upaya kedua berhasil karena menggunakan anggota data X dan Y yang dikembalikan oleh Image::GetBounds untuk menentukan sudut kiri atas persegi panjang sumber.
VOID Example_GetBounds(HDC hdc)
{
Graphics graphics(hdc);
Image image(L"SampleMetafile2.emf");
graphics.DrawImage(&image, 0, 0);
// Get the bounding rectangle for the image (metafile).
RectF boundsRect;
Unit unit;
image.GetBounds(&boundsRect, &unit);
// Attempt to draw 75 percent of the image.
// Less than 75 percent of the image will be visible because the
// upper-left corner of the image's bounding rectangle is not (0, 0).
RectF dstRect(250.0f, 0.0f, 100.0f, 50.0f);
graphics.DrawImage(
&image,
dstRect, // destination rectangle
0.0f, 0.0f, // upper-left corner of source rectangle
0.75f*boundsRect.Width, // width of source rectangle
boundsRect.Height, // height of source rectangle
UnitPixel);
// Draw 75 percent of the image.
dstRect.Y = 80.0f;
graphics.DrawImage(
&image,
dstRect, // destination rectangle
boundsRect.X, boundsRect.Y, // upper-left corner of source rectangle
0.75f*boundsRect.Width, // width of source rectangle
boundsRect.Height, // height of source rectangle
UnitPixel);
}
Kode sebelumnya, bersama dengan file tertentu, SampleMetafile2.emf, menghasilkan output berikut. Perhatikan bahwa upaya pertama (kanan atas) untuk menggambar 75 persen dari gambar hanya menunjukkan sekitar 30 persen gambar.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP, Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | gdiplusheaders.h (termasuk Gdiplus.h) |
Pustaka | Gdiplus.lib |
DLL | Gdiplus.dll |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk