As Size
, Width
dan Height
adalah Get()
properti dari System.Drawing.Image
;
Bagaimana saya bisa mengubah ukuran objek gambar saat run-time dalam C #?
Saat ini, saya baru saja membuat Image
penggunaan baru :
// objImage is the original Image
Bitmap objBitmap = new Bitmap(objImage, new Size(227, 171));
Jawaban:
Ini akan melakukan pengubahan ukuran kualitas tinggi:
wrapMode.SetWrapMode(WrapMode.TileFlipXY)
mencegah ghosting di sekitar batas gambar - pengubahan ukuran yang naif akan sampel piksel transparan di luar batas gambar, tetapi dengan mirroring gambar kita bisa mendapatkan sampel yang lebih baik (pengaturan ini sangat terlihat)destImage.SetResolution
mempertahankan DPI terlepas dari ukuran fisik - dapat meningkatkan kualitas saat mengurangi dimensi gambar atau saat mencetakgraphics.CompositingMode
menentukan apakah piksel dari gambar sumber ditimpa atau dikombinasikan dengan piksel latar belakang.SourceCopy
menentukan bahwa ketika warna diberikan, itu menimpa warna latar belakang.graphics.CompositingQuality
menentukan tingkat kualitas rendering gambar berlapis.graphics.InterpolationMode
menentukan bagaimana nilai menengah antara dua titik akhir dihitunggraphics.SmoothingMode
menentukan apakah garis, kurva, dan tepi area yang diisi menggunakan perataan (juga disebut antialiasing) - mungkin hanya bekerja pada vektorgraphics.PixelOffsetMode
mempengaruhi kualitas render saat menggambar gambar baruMempertahankan rasio aspek dibiarkan sebagai latihan untuk pembaca (sebenarnya, saya hanya tidak berpikir itu tugas fungsi untuk melakukan itu untuk Anda).
Juga, ini adalah artikel bagus yang menggambarkan beberapa jebakan dengan ukuran gambar. Fungsi di atas akan mencakup sebagian besar dari mereka, tetapi Anda masih harus khawatir tentang menyimpan .
sumber
Bitmap
pada dasarnya hanya nama kelas, Anda dapat menyimpannya sebagai jenis file apa pun yang Anda suka.System.Drawing
dan menambahkanusing System.Drawing.Imaging;
Tidak yakin apa yang sangat sulit tentang ini, lakukan apa yang Anda lakukan, gunakan konstruktor Bitmap yang kelebihan beban untuk membuat gambar berukuran kembali, satu-satunya hal yang Anda lewatkan adalah balas kembali ke tipe data Gambar:
sumber
yourImage
sebelum menugaskannya ke gambar baru?dalam pertanyaan ini , Anda akan memiliki beberapa jawaban, termasuk jawaban saya:
sumber
Mengapa tidak menggunakan
System.Drawing.Image.GetThumbnailImage
metode ini?Contoh:
Sumber: http://msdn.microsoft.com/en-us/library/system.drawing.image.getthumbnailimage.aspx
sumber
Anda dapat mencoba net-vips , ikatan C # untuk libvips . Ini adalah perpustakaan pemrosesan gambar yang malas, streaming, dan digerakkan oleh permintaan, sehingga dapat melakukan operasi seperti ini tanpa perlu memuat keseluruhan gambar.
Misalnya, ia hadir dengan thumbnailer gambar yang berguna:
Ini juga mendukung pemangkasan cerdas, cara cerdas menentukan bagian paling penting dari gambar dan menjaganya tetap fokus saat memotong gambar. Sebagai contoh:
Di mana
owl.jpg
komposisi di luar pusat:Memberikan hasil ini:
Pertama, menyusut gambar untuk mendapatkan sumbu vertikal hingga 128 piksel, kemudian memotong hingga 128 piksel menggunakan
attention
strategi. Yang ini mencari gambar untuk fitur yang mungkin menarik perhatian manusia, lihatSmartcrop()
detailnya.sumber
Ini akan -
//////////////
sumber
sumber
Low
?Kode ini sama dengan yang diposkan dari salah satu jawaban di atas .. tetapi akan mengubah piksel transparan menjadi putih alih-alih hitam ... Terima kasih :)
sumber
Dalam aplikasi yang saya buat itu perlu untuk membuat fungsi dengan beberapa opsi. Ini cukup besar, tetapi mengubah ukuran gambar, dapat menjaga rasio aspek dan dapat memotong tepi untuk mengembalikan hanya bagian tengah gambar:
Untuk memudahkan mengakses fungsi, Anda dapat menambahkan beberapa fungsi kelebihan beban:
Sekarang adalah dua boolean terakhir opsional untuk ditetapkan. Panggil fungsi seperti ini:
sumber
Klik di sini http://bhupendrasinghsaini.blogspot.in/2014/07/resize-image-in-c.html
sumber
Ini adalah kode yang saya kerjakan untuk persyaratan tertentu yaitu: tujuan selalu dalam rasio lanskap. Ini akan memberi Anda awal yang baik.
sumber
Jika Anda bekerja dengan
BitmapSource
:Jika Anda ingin kontrol yang lebih baik atas kualitas, jalankan ini terlebih dahulu:
(Default adalah
BitmapScalingMode.Linear
yang setara denganBitmapScalingMode.LowQuality
.)sumber
Saya menggunakan ImageProcessorCore, sebagian besar karena berfungsi. Net Core.
Dan ia memiliki lebih banyak opsi seperti mengonversi jenis, memotong gambar, dan lainnya
sumber
Ubah ukuran dan simpan gambar agar pas dengan lebar dan tinggi seperti kanvas yang menjaga gambar tetap proporsional
sumber
Gunakan fungsi di bawah ini dengan contoh di bawah ini untuk mengubah ukuran gambar:
sumber
Anda dapat menggunakan kerangka kerja Accord.NET untuk ini. Ini memberikan beberapa metode pengubahan ukuran:
sumber
Catatan: ini tidak akan bekerja dengan ASP.Net Core karena WebImage tergantung pada System.Web, tetapi pada versi ASP.Net sebelumnya saya menggunakan potongan ini berkali-kali dan berguna.
sumber