# C# Bitmap Library to Replace `System.Drawing.Common` in .NET
## IronDrawing ücretsiz ve açık kaynaklıdır ve çoğu .NET çizim kütüphanesi formatını destekler
**IronDrawing**, C# Yazılım Mühendislerinin Windows, macOS ve Linux platformlarındaki .NET projelerinde `System.Drawing.Common`'yi değiştirmelerine yardımcı olan, Iron Software tarafından geliştirilen açık kaynaklı bir kütüphanedir.
Grafik, resim ve yazı tiplerini destekleyen .NET 5, 6, 7 ve 8 için sınıf kütüphaneleri ve NuGet paketleri geliştirmek kolay _olmalıdır_.
IronDrawing, gelişen tüm yeni .NET 5, 6, 7 ve 8 grafik standartları arasında sorunsuz bir köprü görevi görür; böylece yalnızca **tercih ettiğiniz standart** için geliştirme yapmanız yeterlidir.
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/drawing/irondrawing-get-started.webp" alt="IronDrawing ücretsiz ve açık kaynaklıdır ve çoğu .NET çizim kütüphanesi formatını destekler" class="img-responsive add-shadow" width="645" height="618" />
</div>
</div>
<div class="hsg-featured-snippet">
<h2>"system.drawing.common bu platformda desteklenmiyor" istisnasını önlemek için teknik adımlar</h2>
<ol>
<li>Implement <strong>System.drawing.common</strong> is not possible for .NET 6 and .NET 7 & 8 on Linux and macOS platforms</li>
<li>Bu platformlarda System.Drawing.Common kullanıldığında bir istisna mesajı ile karşılaşılacaktır</li>
<li>.NET 6 için <strong>System.Drawing.EnableUnixSupport</strong> çalışma zamanı yapılandırmasını <strong>true</strong> olarak ayarlayın</li>
<li>System.Drawing.Common desteği artık .NET 7 ve 8'de mevcut değildir</li>
<li>.NET 7 için <strong>System.Drawing.Common</strong> yerine açık kaynaklı <strong>IronSoftware.Drawing</strong> kütüphanesini kullanın</li>
</ol>
</div>
### Bağlam
Microsoft .NET Framework, dünya çapında milyonlarca yazılım geliştiricisi tarafından kullanılan, çok platformlu ve yüksek uyumlu bir yazılım çerçevesidir. Microsoft, `System.Drawing.Common`'nin yalnızca Windows platformlarında destekleneceği yönünde **önemli** bir **değişiklik** [duyurdu](https://learn.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/6.0/system-drawing-common-windows-only).
Bu durum, `System.Drawing.Common` kullanan çapraz platform kütüphanelerini sürdüren .NET kütüphane geliştiricileri için sorun teşkil etmektedir; çünkü Microsoft'un [önerdiği eylem,](https://learn.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/6.0/system-drawing-common-windows-only#recommended-action) Windows dışındaki kullanıcıları desteklemek için kütüphanenizi yeniden derlemenizi gerektirmektedir. Gönüllülerden ve akademisyenlerden, önerilen yeni grafik kütüphanelerinin **her** biri ortaya çıktıkça bunları kullanmak üzere her NuGet paketini ve sınıf kütüphanesini yeniden derlemeleri beklenmektedir; bu da modern .NET'in benimsenmesini yavaşlatacak bir teknik borç yaratacaktır.
Sonuç olarak, .NET kullandığımızda NuGet'i de kullanırız.
_NuGet paketi geliştiricileri, .NET'i ve her gün kendimiz yazmak için binlerce saat harcayacağımız önceden paketlenmiş kodları geliştirerek hepimize büyük bir iyilik yapıyorlar._
Bu **önemli değişiklik,** NuGet geliştirme sürecini yavaşlatacak ve .NET geliştiricilerinin kullandığı kod kütüphanelerinin terk edilmesine veya eskimesine yol açabilir. Hemen harekete geçmeliyiz!
### Çözümümüz
Eski ve yeni grafik kütüphaneleri arasında dönüştürme yapan bir ara grafik formatı.
Bir sınıf kütüphanesi geliştiricisi olarak, genel `Bitmap`, `Color`, `Rectangle`, `Font` ve `Size` Giriş ve Çıkışları, tüm yeni standartları destekleyen tek bir türde olabilir. Şirket içinde, istediğinizi yapmaya devam edebilirsiniz.
**IronDrawing, .NET Framework 4.62 ile geriye dönük uyumludur ve .NET'in tüm sürümlerini (.NET 8 dahil) destekler.**
IronDrawing'in geliştirilmesi ve piyasaya sürülmesi, `Bitmap`, `Color`, `Rectangle`, `Font` ve `Size` gibi önemli sınıflar için tek tip bir formatın bulunmaması sorununa açık kaynaklı bir çözüm sunarak bu sorunu çözmektedir. `IronSoftware.Drawing`, `System.Drawing`, `Microsoft.Maui`, `SkiaSharp` ve `SixLabors`'deki bu türlerin uygulamaları arasında sizin için sorunsuz bir şekilde dönüştürme yapacaktır. Bu, geliştirici olarak kütüphanenizdeki bu sınıfların tüm örneklerini değiştirmenize gerek kalmamasını sağlar.
[Örneğin](#anchor-anybitmap-example), `System.Drawing.Bitmap` kullanıyorsanız, IronDrawing'in aşağıdaki türlerin herhangi birine örtük dönüştürme özelliğine sahip `AnyBitmap` sınıfını kullanabilirsiniz: `System.Drawing.Bitmap`, `System.Drawing.Image`, `SkiaSharp.SKBitmap`, `SkiaSharp.SKImage`, `SixLabors.ImageSharp`, `Microsoft.Maui.Graphics.Platform.PlatformImage`.
### Neden Bunu Ücretsiz Yapıyoruz?
IronDrawing'i geliştirdik çünkü Iron Software olarak, .NET'in gelişimine önem veren ve onun büyümesini ve başarılı olmasını isteyen, uzun yıllara dayanan deneyime sahip kıdemli .NET geliştiricileriyiz. .NET 7'de görüldüğü gibi, .NET'in büyümesini ve gelişmesini görmekten büyük mutluluk duyuyoruz. Biz NuGet'i her gün kullanıyoruz ve eminim siz de öyle yapıyorsunuzdur. `System.Drawing`'den uzaklaşarak geleceğe kolay bir geçişi destekliyor ve teşvik etmeyi umuyoruz.
NuGet Ekosisteminin gelişmeye devam etmesi ve tüm .NET geliştiricilerinin bundan faydalanabilmesi için, tüm .NET sınıf kütüphanesi ve NuGet geliştirme süreçlerinin daha kolay hale gelmesini istiyoruz.
## `IronSoftware.Drawing` Özellikler
- **`AnyBitmap`**: Evrensel olarak uyumlu bir Bitmap sınıfı. `IronSoftware.Drawing.AnyBitmap` ile aşağıdakiler arasında örtük dönüştürme desteklenir:
- `System.Drawing.Bitmap`
- `System.Drawing.Image`
- `SkiaSharp.SKBitmap`
- `SkiaSharp.SKImage`
- `SixLabors.ImageSharp`
- `Microsoft.Maui.Graphics.Platform.PlatformImage`
- **Color**: Evrensel olarak uyumlu bir Color sınıfı. `IronSoftware.Drawing.Color` ile aşağıdakiler arasında örtük dönüştürme desteklenir:
- `System.Drawing.Color`
- `SkiaSharp.SKColor`
- `SixLabors.ImageSharp.Color`
- `SixLabors.ImageSharp.PixelFormats`
- **`Rectangle`**: Evrensel olarak uyumlu bir Rectangle sınıfı. `IronSoftware.Drawing.Rectangle` ile aşağıdakiler arasında örtük dönüştürme desteklenir:
- `System.Drawing.Rectangle`
- `SkiaSharp.SKRect`
- `SkiaSharp.SKRectI`
- `SixLabors.ImageSharp.Rectangle`
- **Font**: Evrensel olarak uyumlu bir Font sınıfı. `IronSoftware.Drawing.Font` ile aşağıdakiler arasında örtük dönüştürme desteklenir:
- `System.Drawing.Font`
- `SkiaSharp.SKFont`
- `SixLabors.Fonts.Font`
### Uyumluluk
**`IronSoftware.Drawing`** aşağıdakilerle çapraz platform uyumluluğuna sahiptir:
- .NET 8, .NET 7, .NET 6, .NET 5, .NET Core, .NET Standard ve .NET Framework 4.62+
- Windows, macOS, Linux, Docker, Azure ve AWS
## Kurulum
IronDrawing (`IronSoftware.Drawing`) NuGet paketini yüklemek hızlı ve kolaydır. Lütfen paketi şu şekilde yükleyin:
```shell
:InstallCmd Install-Package IronSoftware.System.Drawing
```
Alternatif olarak, [resmi NuGet web](https://www.nuget.org/packages/IronSoftware.System.Drawing) sitesinden doğrudan indirebilirsiniz.
Yükleme tamamlandıktan sonra, C# kodunuzun başına `using IronSoftware.Drawing;` ekleyerek kullanmaya başlayabilirsiniz.
## Kod Örnekleri
### AnyBitmap Örneği
```csharp
:path=/static-assets/drawing/content-code-examples/get-started/anybitmap.cs
```
### Renk Örneği
```csharp
:path=/static-assets/drawing/content-code-examples/get-started/color.cs
```
### Dikdörtgen Örneği
```csharp
:path=/static-assets/drawing/content-code-examples/get-started/rectangle.cs
```
### Yazı Tipi Örneği
```csharp
:path=/static-assets/drawing/content-code-examples/get-started/font.cs
```
## Destek Mevcut
### Lisans
Lisans bilgileri burada bulunabilir: [LICENSE.txt](https://github.com/iron-software/IronSoftware.System.Drawing/blob/master/LICENSE.txt)
### Katkıda Bulun
IronDrawing açık kaynak projesine katkıda bulunmak istiyorsanız, [GitHub'daki](https://github.com/iron-software/IronSoftware.System.Drawing) depoya pull isteği göndermeden önce lütfen [lis](https://github.com/iron-software/IronSoftware.System.Drawing/blob/master/LICENSE.txt)ansı okuyun.
### Bilgi
Iron Software hakkında daha fazla bilgi için lütfen web sitemizi ziyaret edin: [https://ironsoftware.com/](https://ironsoftware.com/)
### Iron Software'den destek
Genel destek ve teknik sorularınız için lütfen bize e-posta gönderin: [support@ironsoftware.com](mailto:support@ironsoftware.com)
IronDrawing ücretsiz ve açık kaynaklıdır ve çoğu .NET çizim kütüphanesi formatını destekler
IronDrawing, C# Yazılım Mühendislerinin Windows, macOS ve Linux platformlarındaki .NET projelerinde System.Drawing.Common'yi değiştirmelerine yardımcı olan, Iron Software tarafından geliştirilen açık kaynaklı bir kütüphanedir.
Grafik, resim ve yazı tiplerini destekleyen .NET 5, 6, 7 ve 8 için sınıf kütüphaneleri ve NuGet paketleri geliştirmek kolay olmalıdır.
IronDrawing, gelişen tüm yeni .NET 5, 6, 7 ve 8 grafik standartları arasında sorunsuz bir köprü görevi görür; böylece yalnızca tercih ettiğiniz standart için geliştirme yapmanız yeterlidir.
"system.drawing.common bu platformda desteklenmiyor" istisnasını önlemek için teknik adımlar
Implement System.drawing.common is not possible for .NET 6 and .NET 7 & 8 on Linux and macOS platforms
Bu platformlarda System.Drawing.Common kullanıldığında bir istisna mesajı ile karşılaşılacaktır
.NET 6 için System.Drawing.EnableUnixSupport çalışma zamanı yapılandırmasını true olarak ayarlayın
System.Drawing.Common desteği artık .NET 7 ve 8'de mevcut değildir
.NET 7 için System.Drawing.Common yerine açık kaynaklı IronSoftware.Drawing kütüphanesini kullanın
Bağlam
Microsoft .NET Framework, dünya çapında milyonlarca yazılım geliştiricisi tarafından kullanılan, çok platformlu ve yüksek uyumlu bir yazılım çerçevesidir. Microsoft, System.Drawing.Common'nin yalnızca Windows platformlarında destekleneceği yönünde önemli bir değişiklikduyurdu.
Bu durum, System.Drawing.Common kullanan çapraz platform kütüphanelerini sürdüren .NET kütüphane geliştiricileri için sorun teşkil etmektedir; çünkü Microsoft'un önerdiği eylem, Windows dışındaki kullanıcıları desteklemek için kütüphanenizi yeniden derlemenizi gerektirmektedir. Gönüllülerden ve akademisyenlerden, önerilen yeni grafik kütüphanelerinin her biri ortaya çıktıkça bunları kullanmak üzere her NuGet paketini ve sınıf kütüphanesini yeniden derlemeleri beklenmektedir; bu da modern .NET'in benimsenmesini yavaşlatacak bir teknik borç yaratacaktır.
Sonuç olarak, .NET kullandığımızda NuGet'i de kullanırız.
NuGet paketi geliştiricileri, .NET'i ve her gün kendimiz yazmak için binlerce saat harcayacağımız önceden paketlenmiş kodları geliştirerek hepimize büyük bir iyilik yapıyorlar.
Bu önemli değişiklik, NuGet geliştirme sürecini yavaşlatacak ve .NET geliştiricilerinin kullandığı kod kütüphanelerinin terk edilmesine veya eskimesine yol açabilir. Hemen harekete geçmeliyiz!
Çözümümüz
Eski ve yeni grafik kütüphaneleri arasında dönüştürme yapan bir ara grafik formatı.
Bir sınıf kütüphanesi geliştiricisi olarak, genel Bitmap, Color, Rectangle, Font ve Size Giriş ve Çıkışları, tüm yeni standartları destekleyen tek bir türde olabilir. Şirket içinde, istediğinizi yapmaya devam edebilirsiniz.
IronDrawing, .NET Framework 4.62 ile geriye dönük uyumludur ve .NET'in tüm sürümlerini (.NET 8 dahil) destekler.
IronDrawing'in geliştirilmesi ve piyasaya sürülmesi, Bitmap, Color, Rectangle, Font ve Size gibi önemli sınıflar için tek tip bir formatın bulunmaması sorununa açık kaynaklı bir çözüm sunarak bu sorunu çözmektedir. IronSoftware.Drawing, System.Drawing, Microsoft.Maui, SkiaSharp ve SixLabors'deki bu türlerin uygulamaları arasında sizin için sorunsuz bir şekilde dönüştürme yapacaktır. Bu, geliştirici olarak kütüphanenizdeki bu sınıfların tüm örneklerini değiştirmenize gerek kalmamasını sağlar.
Örneğin, System.Drawing.Bitmap kullanıyorsanız, IronDrawing'in aşağıdaki türlerin herhangi birine örtük dönüştürme özelliğine sahip AnyBitmap sınıfını kullanabilirsiniz: System.Drawing.Bitmap, System.Drawing.Image, SkiaSharp.SKBitmap, SkiaSharp.SKImage, SixLabors.ImageSharp, Microsoft.Maui.Graphics.Platform.PlatformImage.
Neden Bunu Ücretsiz Yapıyoruz?
IronDrawing'i geliştirdik çünkü Iron Software olarak, .NET'in gelişimine önem veren ve onun büyümesini ve başarılı olmasını isteyen, uzun yıllara dayanan deneyime sahip kıdemli .NET geliştiricileriyiz. .NET 7'de görüldüğü gibi, .NET'in büyümesini ve gelişmesini görmekten büyük mutluluk duyuyoruz. Biz NuGet'i her gün kullanıyoruz ve eminim siz de öyle yapıyorsunuzdur. System.Drawing'den uzaklaşarak geleceğe kolay bir geçişi destekliyor ve teşvik etmeyi umuyoruz.
NuGet Ekosisteminin gelişmeye devam etmesi ve tüm .NET geliştiricilerinin bundan faydalanabilmesi için, tüm .NET sınıf kütüphanesi ve NuGet geliştirme süreçlerinin daha kolay hale gelmesini istiyoruz.
IronSoftware.Drawing Özellikler
AnyBitmap: Evrensel olarak uyumlu bir Bitmap sınıfı. IronSoftware.Drawing.AnyBitmap ile aşağıdakiler arasında örtük dönüştürme desteklenir:
System.Drawing.Bitmap
System.Drawing.Image
SkiaSharp.SKBitmap
SkiaSharp.SKImage
SixLabors.ImageSharp
Microsoft.Maui.Graphics.Platform.PlatformImage
Color: Evrensel olarak uyumlu bir Color sınıfı. IronSoftware.Drawing.Color ile aşağıdakiler arasında örtük dönüştürme desteklenir:
System.Drawing.Color
SkiaSharp.SKColor
SixLabors.ImageSharp.Color
SixLabors.ImageSharp.PixelFormats
Rectangle: Evrensel olarak uyumlu bir Rectangle sınıfı. IronSoftware.Drawing.Rectangle ile aşağıdakiler arasında örtük dönüştürme desteklenir:
System.Drawing.Rectangle
SkiaSharp.SKRect
SkiaSharp.SKRectI
SixLabors.ImageSharp.Rectangle
Font: Evrensel olarak uyumlu bir Font sınıfı. IronSoftware.Drawing.Font ile aşağıdakiler arasında örtük dönüştürme desteklenir:
.NET 8, .NET 7, .NET 6, .NET 5, .NET Core, .NET Standard ve .NET Framework 4.62+
Windows, macOS, Linux, Docker, Azure ve AWS
Kurulum
IronDrawing (IronSoftware.Drawing) NuGet paketini yüklemek hızlı ve kolaydır. Lütfen paketi şu şekilde yükleyin:
PM > Install-Package IronSoftware.System.Drawing
Install-Package IronSoftware.System.Drawing
Alternatif olarak, resmi NuGet web sitesinden doğrudan indirebilirsiniz.
Yükleme tamamlandıktan sonra, C# kodunuzun başına using IronSoftware.Drawing; ekleyerek kullanmaya başlayabilirsiniz.
Kod Örnekleri
AnyBitmap Örneği
using IronSoftware.Drawing;using System.IO;using System.Drawing;// Create a new AnyBitmap object from a file// Replace "FILE_PATH" with the actual path of the image you want to processvar bitmap = AnyBitmap.FromFile("FILE_PATH");// Save the AnyBitmap object as a JPEG filebitmap.SaveAs("result.jpg");// Export the AnyBitmap as a byte array// This can be useful if you want to send the image data over a network or save it in a databasevar bytes = bitmap.ExportBytes();// Create a memory stream to export the AnyBitmap as a JPEG stream with 100% qualityusing (var resultExport = new MemoryStream()){ // This exports the image to the stream with the specified format and quality bitmap.ExportStream(resultExport, AnyBitmap.ImageFormat.Jpeg, 100); // Be sure to use 'using' or manually close the stream to release resources}// Casting between System.Drawing.Bitmap and IronSoftware.Drawing.AnyBitmap// Load a System.Drawing.Bitmap from the same fileSystem.Drawing.Bitmap image = new System.Drawing.Bitmap("FILE_PATH");// This is an implicit conversion from System.Drawing.Bitmap to IronSoftware.Drawing.AnyBitmap// This step is necessary if you are working with System.Drawing.Bitmap and need to convert to IronSoftware.Drawing.AnyBitmap for processingIronSoftware.Drawing.AnyBitmap anyBitmap = AnyBitmap.FromBitmap(image);// Save the resulting AnyBitmap from casting as a PNG fileanyBitmap.SaveAs("result-from-casting.png");
using IronSoftware.Drawing;
using System.IO;
using System.Drawing;
// Create a new AnyBitmap object from a file
// Replace "FILE_PATH" with the actual path of the image you want to process
var bitmap = AnyBitmap.FromFile("FILE_PATH");
// Save the AnyBitmap object as a JPEG file
bitmap.SaveAs("result.jpg");
// Export the AnyBitmap as a byte array
// This can be useful if you want to send the image data over a network or save it in a database
var bytes = bitmap.ExportBytes();
// Create a memory stream to export the AnyBitmap as a JPEG stream with 100% quality
using (var resultExport = new MemoryStream())
{
// This exports the image to the stream with the specified format and quality
bitmap.ExportStream(resultExport, AnyBitmap.ImageFormat.Jpeg, 100);
// Be sure to use 'using' or manually close the stream to release resources
}
// Casting between System.Drawing.Bitmap and IronSoftware.Drawing.AnyBitmap
// Load a System.Drawing.Bitmap from the same file
System.Drawing.Bitmap image = new System.Drawing.Bitmap("FILE_PATH");
// This is an implicit conversion from System.Drawing.Bitmap to IronSoftware.Drawing.AnyBitmap
// This step is necessary if you are working with System.Drawing.Bitmap and need to convert to IronSoftware.Drawing.AnyBitmap for processing
IronSoftware.Drawing.AnyBitmap anyBitmap = AnyBitmap.FromBitmap(image);
// Save the resulting AnyBitmap from casting as a PNG file
anyBitmap.SaveAs("result-from-casting.png");
ImportsIronSoftware.DrawingImportsSystem.IOImportsSystem.Drawing' Create a new AnyBitmap object from a file' Replace "FILE_PATH" with the actual path of the image you want to processPrivate bitmap = AnyBitmap.FromFile("FILE_PATH")' Save the AnyBitmap object as a JPEG filebitmap.SaveAs("result.jpg")' Export the AnyBitmap as a byte array' This can be useful if you want to send the image data over a network or save it in a databaseDim bytes = bitmap.ExportBytes()' Create a memory stream to export the AnyBitmap as a JPEG stream with 100% qualityUsing resultExport = New MemoryStream() ' This exports the image to the stream with the specified format and quality bitmap.ExportStream(resultExport, AnyBitmap.ImageFormat.Jpeg, 100) ' Be sure to use 'using' or manually close the stream to release resourcesEndUsing' Casting between System.Drawing.Bitmap and IronSoftware.Drawing.AnyBitmap' Load a System.Drawing.Bitmap from the same fileDim image As New System.Drawing.Bitmap("FILE_PATH")' This is an implicit conversion from System.Drawing.Bitmap to IronSoftware.Drawing.AnyBitmap' This step is necessary if you are working with System.Drawing.Bitmap and need to convert to IronSoftware.Drawing.AnyBitmap for processingDim anyBitmap AsIronSoftware.Drawing.AnyBitmap = AnyBitmap.FromBitmap(image)' Save the resulting AnyBitmap from casting as a PNG fileanyBitmap.SaveAs("result-from-casting.png")
Imports IronSoftware.Drawing
Imports System.IO
Imports System.Drawing
' Create a new AnyBitmap object from a file
' Replace "FILE_PATH" with the actual path of the image you want to process
Private bitmap = AnyBitmap.FromFile("FILE_PATH")
' Save the AnyBitmap object as a JPEG file
bitmap.SaveAs("result.jpg")
' Export the AnyBitmap as a byte array
' This can be useful if you want to send the image data over a network or save it in a database
Dim bytes = bitmap.ExportBytes()
' Create a memory stream to export the AnyBitmap as a JPEG stream with 100% quality
Using resultExport = New MemoryStream()
' This exports the image to the stream with the specified format and quality
bitmap.ExportStream(resultExport, AnyBitmap.ImageFormat.Jpeg, 100)
' Be sure to use 'using' or manually close the stream to release resources
End Using
' Casting between System.Drawing.Bitmap and IronSoftware.Drawing.AnyBitmap
' Load a System.Drawing.Bitmap from the same file
Dim image As New System.Drawing.Bitmap("FILE_PATH")
' This is an implicit conversion from System.Drawing.Bitmap to IronSoftware.Drawing.AnyBitmap
' This step is necessary if you are working with System.Drawing.Bitmap and need to convert to IronSoftware.Drawing.AnyBitmap for processing
Dim anyBitmap As IronSoftware.Drawing.AnyBitmap = AnyBitmap.FromBitmap(image)
' Save the resulting AnyBitmap from casting as a PNG file
anyBitmap.SaveAs("result-from-casting.png")
Renk Örneği
using IronSoftware.Drawing;using System;// The IronSoftware.Drawing library provides enhanced color manipulation features.// This example demonstrates creating color objects and converting between// System.Drawing.Color and IronSoftware.Drawing.Color.// Create a new Color object from a hex string.Color fromHex = Color.FromHex("#191919");// Create a new Color object from RGB values.Color fromRgb = Color.FromRgb(255, 255, 0);// Create a new Color object using an enumeration.Color fromEnum = Color.Crimson;// Casting between System.Drawing.Color and IronSoftware.Drawing.Color.System.Drawing.Color drawingColor = System.Drawing.Color.Red;// Convert System.Drawing.Color to IronSoftware.Drawing.Color.IronSoftware.Drawing.Color ironColor = Color.FromSystemColor(drawingColor);// Access the alpha, red, green, and blue components of the IronSoftware.Drawing.Color.byte alpha = ironColor.A;byte red = ironColor.R;byte green = ironColor.G;byte blue = ironColor.B;// Calculate the luminance of the color.// Luminance is a value from 0 (black) to 100 (white) where 50 is the perceptual "middle grey".double luminance = ironColor.GetLuminance();// Log the calculated attributes to the console.Console.WriteLine($"Color Details - ARGB: ({alpha}, {red}, {green}, {blue}), Luminance: {luminance}");
using IronSoftware.Drawing;
using System;
// The IronSoftware.Drawing library provides enhanced color manipulation features.
// This example demonstrates creating color objects and converting between
// System.Drawing.Color and IronSoftware.Drawing.Color.
// Create a new Color object from a hex string.
Color fromHex = Color.FromHex("#191919");
// Create a new Color object from RGB values.
Color fromRgb = Color.FromRgb(255, 255, 0);
// Create a new Color object using an enumeration.
Color fromEnum = Color.Crimson;
// Casting between System.Drawing.Color and IronSoftware.Drawing.Color.
System.Drawing.Color drawingColor = System.Drawing.Color.Red;
// Convert System.Drawing.Color to IronSoftware.Drawing.Color.
IronSoftware.Drawing.Color ironColor = Color.FromSystemColor(drawingColor);
// Access the alpha, red, green, and blue components of the IronSoftware.Drawing.Color.
byte alpha = ironColor.A;
byte red = ironColor.R;
byte green = ironColor.G;
byte blue = ironColor.B;
// Calculate the luminance of the color.
// Luminance is a value from 0 (black) to 100 (white) where 50 is the perceptual "middle grey".
double luminance = ironColor.GetLuminance();
// Log the calculated attributes to the console.
Console.WriteLine($"Color Details - ARGB: ({alpha}, {red}, {green}, {blue}), Luminance: {luminance}");
ImportsIronSoftware.DrawingImportsSystem' The IronSoftware.Drawing library provides enhanced color manipulation features.' This example demonstrates creating color objects and converting between' System.Drawing.Color and IronSoftware.Drawing.Color.' Create a new Color object from a hex string.Private fromHex AsColor = Color.FromHex("#191919")' Create a new Color object from RGB values.Private fromRgb AsColor = Color.FromRgb(255, 255, 0)' Create a new Color object using an enumeration.Private fromEnum AsColor = Color.Crimson' Casting between System.Drawing.Color and IronSoftware.Drawing.Color.Private drawingColor AsSystem.Drawing.Color = System.Drawing.Color.Red' Convert System.Drawing.Color to IronSoftware.Drawing.Color.Private ironColor AsIronSoftware.Drawing.Color = Color.FromSystemColor(drawingColor)' Access the alpha, red, green, and blue components of the IronSoftware.Drawing.Color.Private alpha AsByte = ironColor.APrivate red AsByte = ironColor.RPrivate green AsByte = ironColor.GPrivate blue AsByte = ironColor.B' Calculate the luminance of the color.' Luminance is a value from 0 (black) to 100 (white) where 50 is the perceptual "middle grey".Private luminance AsDouble = ironColor.GetLuminance()' Log the calculated attributes to the console.Console.WriteLine($"Color Details - ARGB: ({alpha}, {red}, {green}, {blue}), Luminance: {luminance}")
Imports IronSoftware.Drawing
Imports System
' The IronSoftware.Drawing library provides enhanced color manipulation features.
' This example demonstrates creating color objects and converting between
' System.Drawing.Color and IronSoftware.Drawing.Color.
' Create a new Color object from a hex string.
Private fromHex As Color = Color.FromHex("#191919")
' Create a new Color object from RGB values.
Private fromRgb As Color = Color.FromRgb(255, 255, 0)
' Create a new Color object using an enumeration.
Private fromEnum As Color = Color.Crimson
' Casting between System.Drawing.Color and IronSoftware.Drawing.Color.
Private drawingColor As System.Drawing.Color = System.Drawing.Color.Red
' Convert System.Drawing.Color to IronSoftware.Drawing.Color.
Private ironColor As IronSoftware.Drawing.Color = Color.FromSystemColor(drawingColor)
' Access the alpha, red, green, and blue components of the IronSoftware.Drawing.Color.
Private alpha As Byte = ironColor.A
Private red As Byte = ironColor.R
Private green As Byte = ironColor.G
Private blue As Byte = ironColor.B
' Calculate the luminance of the color.
' Luminance is a value from 0 (black) to 100 (white) where 50 is the perceptual "middle grey".
Private luminance As Double = ironColor.GetLuminance()
' Log the calculated attributes to the console.
Console.WriteLine($"Color Details - ARGB: ({alpha}, {red}, {green}, {blue}), Luminance: {luminance}")
Dikdörtgen Örneği
using IronSoftware.Drawing;using System.Drawing;// Declare an IronSoftware.Drawing.Rectangle objectIronSoftware.Drawing.Rectangle ironRectangle = new IronSoftware.Drawing.Rectangle(5, 5, 50, 50);// Declare a System.Drawing.Rectangle objectSystem.Drawing.Rectangle systemRectangle = new System.Drawing.Rectangle(10, 10, 150, 150);// Implicitly convert System.Drawing.Rectangle to IronSoftware.Drawing.Rectangle// Note: Uncomment and use appropriate conversion methods if available in the IronSoftware.Drawing library// ironRectangle = (IronSoftware.Drawing.Rectangle)systemRectangle;// Output the properties of IronSoftware.Drawing.Rectangle if conversion is successful// These Console.WriteLine statements assume this code runs in a console environmentConsole.WriteLine(ironRectangle.X);Console.WriteLine(ironRectangle.Y);Console.WriteLine(ironRectangle.Width);Console.WriteLine(ironRectangle.Height);
using IronSoftware.Drawing;
using System.Drawing;
// Declare an IronSoftware.Drawing.Rectangle object
IronSoftware.Drawing.Rectangle ironRectangle = new IronSoftware.Drawing.Rectangle(5, 5, 50, 50);
// Declare a System.Drawing.Rectangle object
System.Drawing.Rectangle systemRectangle = new System.Drawing.Rectangle(10, 10, 150, 150);
// Implicitly convert System.Drawing.Rectangle to IronSoftware.Drawing.Rectangle
// Note: Uncomment and use appropriate conversion methods if available in the IronSoftware.Drawing library
// ironRectangle = (IronSoftware.Drawing.Rectangle)systemRectangle;
// Output the properties of IronSoftware.Drawing.Rectangle if conversion is successful
// These Console.WriteLine statements assume this code runs in a console environment
Console.WriteLine(ironRectangle.X);
Console.WriteLine(ironRectangle.Y);
Console.WriteLine(ironRectangle.Width);
Console.WriteLine(ironRectangle.Height);
ImportsIronSoftware.DrawingImportsSystem.Drawing' Declare an IronSoftware.Drawing.Rectangle objectPrivate ironRectangle As New IronSoftware.Drawing.Rectangle(5, 5, 50, 50)' Declare a System.Drawing.Rectangle objectPrivate systemRectangle As New System.Drawing.Rectangle(10, 10, 150, 150)' Implicitly convert System.Drawing.Rectangle to IronSoftware.Drawing.Rectangle' Note: Uncomment and use appropriate conversion methods if available in the IronSoftware.Drawing library' ironRectangle = (IronSoftware.Drawing.Rectangle)systemRectangle;' Output the properties of IronSoftware.Drawing.Rectangle if conversion is successful' These Console.WriteLine statements assume this code runs in a console environmentConsole.WriteLine(ironRectangle.X)Console.WriteLine(ironRectangle.Y)Console.WriteLine(ironRectangle.Width)Console.WriteLine(ironRectangle.Height)
Imports IronSoftware.Drawing
Imports System.Drawing
' Declare an IronSoftware.Drawing.Rectangle object
Private ironRectangle As New IronSoftware.Drawing.Rectangle(5, 5, 50, 50)
' Declare a System.Drawing.Rectangle object
Private systemRectangle As New System.Drawing.Rectangle(10, 10, 150, 150)
' Implicitly convert System.Drawing.Rectangle to IronSoftware.Drawing.Rectangle
' Note: Uncomment and use appropriate conversion methods if available in the IronSoftware.Drawing library
' ironRectangle = (IronSoftware.Drawing.Rectangle)systemRectangle;
' Output the properties of IronSoftware.Drawing.Rectangle if conversion is successful
' These Console.WriteLine statements assume this code runs in a console environment
Console.WriteLine(ironRectangle.X)
Console.WriteLine(ironRectangle.Y)
Console.WriteLine(ironRectangle.Width)
Console.WriteLine(ironRectangle.Height)
Yazı Tipi Örneği
using System;using System.Drawing;using IronSoftware.Drawing;// Create a new Font object with a specified font family, style, and sizeIronSoftware.Drawing.Font font = new IronSoftware.Drawing.Font("Times New Roman", FontStyle.Italic | FontStyle.Bold, 30);// Create a new instance of System.Drawing.FontSystem.Drawing.Font drawingFont = new System.Drawing.Font("Courier New", 30);try{ // Attempt to cast System.Drawing.Font to IronSoftware.Drawing.Font // Note: This cast may not be directly possible if the libraries do not support each other; // additional conversion logic might be required. IronSoftware.Drawing.Font ironFont = new IronSoftware.Drawing.Font(drawingFont.FontFamily.Name, drawingFont.Style, drawingFont.Size); // Accessing properties of the IronSoftware.Drawing.Font object string familyName = ironFont.FamilyName; // Get the font family name FontStyle style = ironFont.Style; // Get the combined font style (italic, bold, etc.) float size = ironFont.Size; // Get the font size bool isItalic = ironFont.Italic; // Determine if the font style includes Italic bool isBold = ironFont.Bold; // Determine if the font style includes Bold // Output the font properties to verify correctnessConsole.WriteLine($"Family: {familyName}, Style: {style}, Size: {size}, Italic: {isItalic}, Bold: {isBold}");}catch (InvalidCastException){Console.WriteLine("The conversion between System.Drawing.Font and IronSoftware.Drawing.Font is not directly supported.");}catch (Exception ex){Console.WriteLine($"An error occurred: {ex.Message}");}
using System;
using System.Drawing;
using IronSoftware.Drawing;
// Create a new Font object with a specified font family, style, and size
IronSoftware.Drawing.Font font = new IronSoftware.Drawing.Font("Times New Roman", FontStyle.Italic | FontStyle.Bold, 30);
// Create a new instance of System.Drawing.Font
System.Drawing.Font drawingFont = new System.Drawing.Font("Courier New", 30);
try
{
// Attempt to cast System.Drawing.Font to IronSoftware.Drawing.Font
// Note: This cast may not be directly possible if the libraries do not support each other;
// additional conversion logic might be required.
IronSoftware.Drawing.Font ironFont = new IronSoftware.Drawing.Font(drawingFont.FontFamily.Name, drawingFont.Style, drawingFont.Size);
// Accessing properties of the IronSoftware.Drawing.Font object
string familyName = ironFont.FamilyName; // Get the font family name
FontStyle style = ironFont.Style; // Get the combined font style (italic, bold, etc.)
float size = ironFont.Size; // Get the font size
bool isItalic = ironFont.Italic; // Determine if the font style includes Italic
bool isBold = ironFont.Bold; // Determine if the font style includes Bold
// Output the font properties to verify correctness
Console.WriteLine($"Family: {familyName}, Style: {style}, Size: {size}, Italic: {isItalic}, Bold: {isBold}");
}
catch (InvalidCastException)
{
Console.WriteLine("The conversion between System.Drawing.Font and IronSoftware.Drawing.Font is not directly supported.");
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred: {ex.Message}");
}
ImportsSystemImportsSystem.DrawingImportsIronSoftware.Drawing' Create a new Font object with a specified font family, style, and sizePrivate font As New IronSoftware.Drawing.Font("Times New Roman", FontStyle.ItalicOrFontStyle.Bold, 30)' Create a new instance of System.Drawing.FontPrivate drawingFont As New System.Drawing.Font("Courier New", 30)Try ' Attempt to cast System.Drawing.Font to IronSoftware.Drawing.Font ' Note: This cast may not be directly possible if the libraries do not support each other; ' additional conversion logic might be required. Dim ironFont As New IronSoftware.Drawing.Font(drawingFont.FontFamily.Name, drawingFont.Style, drawingFont.Size) ' Accessing properties of the IronSoftware.Drawing.Font object Dim familyName AsString = ironFont.FamilyName' Get the font family name Dim style AsFontStyle = ironFont.Style' Get the combined font style (italic, bold, etc.) Dim size AsSingle = ironFont.Size' Get the font size Dim isItalic AsBoolean = ironFont.Italic' Determine if the font style includes Italic Dim isBold AsBoolean = ironFont.Bold' Determine if the font style includes Bold ' Output the font properties to verify correctnessConsole.WriteLine($"Family: {familyName}, Style: {style}, Size: {size}, Italic: {isItalic}, Bold: {isBold}")Catch e1 AsInvalidCastExceptionConsole.WriteLine("The conversion between System.Drawing.Font and IronSoftware.Drawing.Font is not directly supported.")Catch ex AsExceptionConsole.WriteLine($"An error occurred: {ex.Message}")EndTry
Imports System
Imports System.Drawing
Imports IronSoftware.Drawing
' Create a new Font object with a specified font family, style, and size
Private font As New IronSoftware.Drawing.Font("Times New Roman", FontStyle.Italic Or FontStyle.Bold, 30)
' Create a new instance of System.Drawing.Font
Private drawingFont As New System.Drawing.Font("Courier New", 30)
Try
' Attempt to cast System.Drawing.Font to IronSoftware.Drawing.Font
' Note: This cast may not be directly possible if the libraries do not support each other;
' additional conversion logic might be required.
Dim ironFont As New IronSoftware.Drawing.Font(drawingFont.FontFamily.Name, drawingFont.Style, drawingFont.Size)
' Accessing properties of the IronSoftware.Drawing.Font object
Dim familyName As String = ironFont.FamilyName ' Get the font family name
Dim style As FontStyle = ironFont.Style ' Get the combined font style (italic, bold, etc.)
Dim size As Single = ironFont.Size ' Get the font size
Dim isItalic As Boolean = ironFont.Italic ' Determine if the font style includes Italic
Dim isBold As Boolean = ironFont.Bold ' Determine if the font style includes Bold
' Output the font properties to verify correctness
Console.WriteLine($"Family: {familyName}, Style: {style}, Size: {size}, Italic: {isItalic}, Bold: {isBold}")
Catch e1 As InvalidCastException
Console.WriteLine("The conversion between System.Drawing.Font and IronSoftware.Drawing.Font is not directly supported.")
Catch ex As Exception
Console.WriteLine($"An error occurred: {ex.Message}")
End Try
Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.