Skip to content

Commit b71841f

Browse files
committed
add readme license
1 parent 06f672e commit b71841f

File tree

8 files changed

+206
-18
lines changed

8 files changed

+206
-18
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,63 @@
11
using System;
22
namespace Plugin.ImageEdit.Abstractions
33
{
4+
/// <summary>
5+
/// Interface for EditableImage
6+
/// </summary>
47
public interface IEditableImage:IDisposable
58
{
9+
/// <summary>
10+
/// Image Width
11+
/// </summary>
612
int Width { get; }
13+
14+
/// <summary>
15+
/// Image Height
16+
/// </summary>
717
int Height { get; }
18+
19+
/// <summary>
20+
/// Resize
21+
/// </summary>
22+
/// <returns>IEditableImage</returns>
23+
/// <param name="width">resize width. 0 is adjust to aspect ratio.</param>
24+
/// <param name="height">resize height. 0 is adjust to aspect ratio.</param>
825
IEditableImage Resize(int width, int height);
26+
27+
/// <summary>
28+
/// Crop
29+
/// </summary>
30+
/// <returns>IEditableImage</returns>
31+
/// <param name="x">start x</param>
32+
/// <param name="y">start y</param>
33+
/// <param name="width">crop width</param>
34+
/// <param name="height">crop height</param>
935
IEditableImage Crop(int x, int y, int width, int height);
36+
37+
/// <summary>
38+
/// Rotate
39+
/// </summary>
40+
/// <returns>IEditableImage</returns>
41+
/// <param name="degree">degree(0-360)</param>
1042
IEditableImage Rotate(float degree);
43+
44+
/// <summary>
45+
/// To Jpeg byte array
46+
/// </summary>
47+
/// <returns>byte[]</returns>
48+
/// <param name="quality">quality(1-100)</param>
1149
byte[] ToJpeg(float quality = 80);
50+
51+
/// <summary>
52+
/// To PNG byte array
53+
/// </summary>
54+
/// <returns>byte[]</returns>
1255
byte[] ToPng();
56+
57+
/// <summary>
58+
/// image pixels array. order by ARGB. 0xFF(A)FF(R)FF(G)FF(B)
59+
/// </summary>
60+
/// <returns>The ARGB pixels.</returns>
1361
int[] ToArgbPixels();
1462
}
1563
}

ImageEdit/Plugin.ImageEdit.Abstractions/IImageEdit.cs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,19 @@ namespace Plugin.ImageEdit.Abstractions
77
/// Interface for ImageEdit
88
/// </summary>
99
public interface IImageEdit
10-
{
10+
{
11+
/// <summary>
12+
/// Create editable image
13+
/// </summary>
14+
/// <returns>IEditableImage</returns>
15+
/// <param name="imageArray">image byte array</param>
1116
IEditableImage CreateImage(byte[] imageArray);
17+
18+
/// <summary>
19+
/// Create editable image (async)
20+
/// </summary>
21+
/// <returns>IEditableImage</returns>
22+
/// <param name="imageArray">image byte array</param>
1223
Task<IEditableImage> CreateImageAsync(byte[] imageArray);
1324
}
1425
}

ImageEdit/Plugin.ImageEdit.Android/Plugin.ImageEdit.Android.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,14 @@
3030
<WarningLevel>4</WarningLevel>
3131
</PropertyGroup>
3232
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
33-
<DebugType>pdbonly</DebugType>
33+
<DebugType></DebugType>
3434
<Optimize>true</Optimize>
3535
<OutputPath>bin\Release\</OutputPath>
3636
<DefineConstants>TRACE</DefineConstants>
3737
<ErrorReport>prompt</ErrorReport>
3838
<WarningLevel>4</WarningLevel>
3939
<DocumentationFile>bin\Release\Plugin.ImageEdit.XML</DocumentationFile>
40+
<NoWarn>1591</NoWarn>
4041
</PropertyGroup>
4142
<ItemGroup>
4243
<Reference Include="Mono.Android" />

ImageEdit/Plugin.ImageEdit.iOS/Plugin.ImageEdit.iOS.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
<ConsolePause>false</ConsolePause>
3434
<CodesignKey>iPhone Developer</CodesignKey>
3535
<DocumentationFile>bin\iPhone\Release\Plugin.ImageEdit.XML</DocumentationFile>
36+
<NoWarn>1591</NoWarn>
3637
</PropertyGroup>
3738
<ItemGroup>
3839
<Compile Include="..\Plugin.ImageEdit\CrossImageEdit.cs">

ImageEdit/Plugin.ImageEdit/Plugin.ImageEdit.csproj

100755100644
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
<WarningLevel>4</WarningLevel>
2727
</PropertyGroup>
2828
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
29+
<DebugSymbols>true</DebugSymbols>
2930
<DebugType>pdbonly</DebugType>
3031
<Optimize>true</Optimize>
3132
<OutputPath>bin\Release\</OutputPath>

LICENSE.txt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2017 kamu
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# Image Edit Plugin for Xamarin
2+
3+
This plugin will enable you to manipulate(resize,crop,rotate) a image(png,jpg).
4+
5+
### Setup
6+
7+
* Available on NuGet: https://www.nuget.org/packages/Xamarin.Plugin.ImageEdit/
8+
* Install into your PCL project and Client projects.
9+
10+
```bash
11+
Install-Package Xamarin.Plugin.ImageEdit -Pre
12+
```
13+
14+
**Platform Support**
15+
16+
|Platform|Supported|Version|
17+
| ------------------- | :-----------: | :------------------: |
18+
|Xamarin.iOS|Yes|iOS 9+|
19+
|Xamarin.Android|Yes|API 22+|
20+
|Windows 10 UWP|No||
21+
|Xamarin.Mac|No||
22+
23+
## Usage example
24+
25+
Image crop and resize and rotate and get png data.
26+
27+
```cs
28+
using (var image = await CrossImageEdit.Current.CreateImageAsync(imageByteArray)) {
29+
var croped = await Task.Run(() =>
30+
image.Crop(10, 20, 250, 100)
31+
.Rotate(180)
32+
.Resize(100, 0)
33+
.ToPng()
34+
);
35+
}
36+
```
37+
38+
## API Usage
39+
40+
### Get EditableImage
41+
42+
```cs
43+
var image = await CrossImageEdit.Current.CreateImageAsync(imageByteArray);
44+
```
45+
It is able to manipulate a image using this object.
46+
47+
### Resize
48+
49+
```cs
50+
var width = 200;
51+
var height = 200;
52+
image.Resize(width, height);
53+
image.Resize(width, 0); //auto height
54+
image.Resize(0, height); //auto width
55+
```
56+
57+
### Crop
58+
59+
```cs
60+
var x = 10;
61+
var y = 10;
62+
var width = 50;
63+
var height = 50;
64+
image.Crop(10, 10, 50, 50);
65+
```
66+
67+
### Rotate
68+
69+
```cs
70+
var degree = 90; // 0-360;
71+
image.Rotate(degree);
72+
```
73+
74+
### ToPng
75+
76+
```cs
77+
var pngBytes = image.ToPng();
78+
```
79+
80+
### ToJpeg
81+
82+
```cs
83+
var jpgBytes = image.ToJpeg(90); // quality(0-100)
84+
```
85+
86+
### ToArgbPixels
87+
88+
Get image ARGB infomation.
89+
90+
for example when 0xFF00F090
91+
92+
|A|R|G|B|
93+
| -- | :---: | :--: | :--: |
94+
|FF|00|F0 |90|
95+
96+
97+
```cs
98+
var pixels = image.ToArgbPixels();
99+
```
100+
101+
## License
102+
103+
MIT Licensed.

nuget/ImageEdit.Plugin.nuspec

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
3-
<metadata minClientVersion="2.8.3">
3+
<metadata>
44
<id>Xamarin.Plugin.ImageEdit</id>
5-
<version>0.0.1</version>
5+
<version>0.0.1-pre</version>
66
<title>Image Edit Plugin for Xamarin</title>
77
<authors>kamu</authors>
88
<owners>kamu</owners>
9-
<licenseUrl/>
10-
<projectUrl/>
9+
<licenseUrl>https://github.com/muak/Xamarin.Plugin.ImageEdit/blob/master/LICENSE.txt</licenseUrl>
10+
<projectUrl>https://github.com/muak/Xamarin.Plugin.ImageEdit</projectUrl>
1111
<!--Default Icon, a template can be found: https://raw.githubusercontent.com/jamesmontemagno/Xamarin-Templates/master/Plugins-Templates/icons/plugin_icon.png-->
1212
<iconUrl>https://raw.githubusercontent.com/jamesmontemagno/Xamarin-Templates/master/Plugins-Templates/icons/plugin_icon_nuget.png</iconUrl>
1313

@@ -46,64 +46,66 @@
4646
<!--Core-->
4747
<file src="../ImageEdit/Plugin.ImageEdit/bin/Release/Plugin.ImageEdit.dll" target="lib/portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+UAP10/Plugin.ImageEdit.dll" />
4848
<file src="../ImageEdit/Plugin.ImageEdit/bin/Release/Plugin.ImageEdit.xml" target="lib/portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+UAP10/Plugin.ImageEdit.xml" />
49-
<file src="../ImageEdit/Plugin.ImageEdit/bin/Release/Plugin.ImageEdit.pdb" target="lib/portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+UAP10/Plugin.ImageEdit.pdb" />
49+
<!--<file src="../ImageEdit/Plugin.ImageEdit/bin/Release/Plugin.ImageEdit.pdb" target="lib/portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+UAP10/Plugin.ImageEdit.pdb" />-->
5050
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.dll" target="lib/portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+UAP10/Plugin.ImageEdit.Abstractions.dll" />
5151
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.xml" target="lib/portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+UAP10/Plugin.ImageEdit.Abstractions.xml" />
52-
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.pdb" target="lib/portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+UAP10/Plugin.ImageEdit.Abstractions.pdb" />
52+
<!--<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.pdb" target="lib/portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+UAP10/Plugin.ImageEdit.Abstractions.pdb" />-->
5353

54-
<!--dotnet-->
54+
<!--dotnet--><!--
5555
<file src="../ImageEdit/Plugin.ImageEdit/bin/Release/Plugin.ImageEdit.dll" target="lib/dotnet/Plugin.ImageEdit.dll" />
5656
<file src="../ImageEdit/Plugin.ImageEdit/bin/Release/Plugin.ImageEdit.xml" target="lib/dotnet/Plugin.ImageEdit.xml" />
5757
<file src="../ImageEdit/Plugin.ImageEdit/bin/Release/Plugin.ImageEdit.pdb" target="lib/dotnet/Plugin.ImageEdit.pdb" />
5858
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.dll" target="lib/dotnet/Plugin.ImageEdit.Abstractions.dll" />
5959
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.xml" target="lib/dotnet/Plugin.ImageEdit.Abstractions.xml" />
60-
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.pdb" target="lib/dotnet/Plugin.ImageEdit.Abstractions.pdb" />
60+
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.pdb" target="lib/dotnet/Plugin.ImageEdit.Abstractions.pdb" />-->
6161

62-
<!--Win Phone Silverlight-->
62+
<!--Win Phone Silverlight--><!--
6363
<file src="../ImageEdit/Plugin.ImageEdit.WindowsPhone8/bin/Release/Plugin.ImageEdit.dll" target="lib/wp8/Plugin.ImageEdit.dll" />
6464
<file src="../ImageEdit/Plugin.ImageEdit.WindowsPhone8/bin/Release/Plugin.ImageEdit.xml" target="lib/wp8/Plugin.ImageEdit.xml" />
6565
<file src="../ImageEdit/Plugin.ImageEdit.WindowsPhone8/bin/Release/Plugin.ImageEdit.pdb" target="lib/wp8/Plugin.ImageEdit.pdb" />
6666
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.dll" target="lib/wp8/Plugin.ImageEdit.Abstractions.dll" />
6767
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.xml" target="lib/wp8/Plugin.ImageEdit.Abstractions.xml" />
68-
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.pdb" target="lib/wp8/Plugin.ImageEdit.Abstractions.pdb" />
68+
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.pdb" target="lib/wp8/Plugin.ImageEdit.Abstractions.pdb" />-->
6969

70-
<!--Win Phone 81-->
70+
<!--Win Phone 81--><!--
7171
<file src="../ImageEdit/Plugin.ImageEdit.WindowsPhone81/bin/Release/Plugin.ImageEdit.dll" target="lib/wpa81/Plugin.ImageEdit.dll" />
7272
<file src="../ImageEdit/Plugin.ImageEdit.WindowsPhone81/bin/Release/Plugin.ImageEdit.xml" target="lib/wpa81/Plugin.ImageEdit.xml" />
7373
<file src="../ImageEdit/Plugin.ImageEdit.WindowsPhone81/bin/Release/Plugin.ImageEdit.pdb" target="lib/wpa81/Plugin.ImageEdit.pdb" />
7474
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.dll" target="lib/wpa81/Plugin.ImageEdit.Abstractions.dll" />
7575
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.xml" target="lib/wpa81/Plugin.ImageEdit.Abstractions.xml" />
76-
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.pdb" target="lib/wpa81/Plugin.ImageEdit.Abstractions.pdb" />
76+
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.pdb" target="lib/wpa81/Plugin.ImageEdit.Abstractions.pdb" />-->
7777

78-
<!--WinStore-->
78+
<!--WinStore--><!--
7979
<file src="../ImageEdit/Plugin.ImageEdit.WindowsStore/bin/Release/Plugin.ImageEdit.dll" target="lib/win8/Plugin.ImageEdit.dll" />
8080
<file src="../ImageEdit/Plugin.ImageEdit.WindowsStore/bin/Release/Plugin.ImageEdit.xml" target="lib/win8/Plugin.ImageEdit.xml" />
8181
<file src="../ImageEdit/Plugin.ImageEdit.WindowsStore/bin/Release/Plugin.ImageEdit.pdb" target="lib/win8/Plugin.ImageEdit.pdb" />
8282
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.dll" target="lib/win8/Plugin.ImageEdit.Abstractions.dll" />
8383
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.xml" target="lib/win8/Plugin.ImageEdit.Abstractions.xml" />
8484
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.pdb" target="lib/win8/Plugin.ImageEdit.Abstractions.pdb" />
85+
-->
8586

8687
<!--Xamarin.Android-->
8788
<file src="../ImageEdit/Plugin.ImageEdit.Android/bin/Release/Plugin.ImageEdit.dll" target="lib/MonoAndroid10/Plugin.ImageEdit.dll" />
8889
<file src="../ImageEdit/Plugin.ImageEdit.Android/bin/Release/Plugin.ImageEdit.xml" target="lib/MonoAndroid10/Plugin.ImageEdit.xml" />
89-
<file src="../ImageEdit/Plugin.ImageEdit.Android/bin/Release/Plugin.ImageEdit.pdb" target="lib/MonoAndroid10/Plugin.ImageEdit.pdb" />
90+
<!--<file src="../ImageEdit/Plugin.ImageEdit.Android/bin/Release/Plugin.ImageEdit.pdb" target="lib/MonoAndroid10/Plugin.ImageEdit.pdb" />-->
9091
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.dll" target="lib/MonoAndroid10/Plugin.ImageEdit.Abstractions.dll" />
9192
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.xml" target="lib/MonoAndroid10/Plugin.ImageEdit.Abstractions.xml" />
92-
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.pdb" target="lib/MonoAndroid10/Plugin.ImageEdit.Abstractions.pdb" />
93+
<!--<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.pdb" target="lib/MonoAndroid10/Plugin.ImageEdit.Abstractions.pdb" />-->
9394

9495
<!--Xamarin.iOS-->
9596
<file src="../ImageEdit/Plugin.ImageEdit.iOS/bin/iPhone/Release/Plugin.ImageEdit.dll" target="lib/Xamarin.iOS10/Plugin.ImageEdit.dll" />
9697
<file src="../ImageEdit/Plugin.ImageEdit.iOS/bin/iPhone/Release/Plugin.ImageEdit.xml" target="lib/Xamarin.iOS10/Plugin.ImageEdit.xml" />
9798
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.dll" target="lib/Xamarin.iOS10/Plugin.ImageEdit.Abstractions.dll" />
9899
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.xml" target="lib/Xamarin.iOS10/Plugin.ImageEdit.Abstractions.xml" />
99100

100-
<!--uap-->
101+
<!--uap--><!--
101102
<file src="../ImageEdit/Plugin.ImageEdit.UWP/bin/Release/Plugin.ImageEdit.dll" target="lib/UAP10/Plugin.ImageEdit.dll" />
102103
<file src="../ImageEdit/Plugin.ImageEdit.UWP/bin/Release/Plugin.ImageEdit.xml" target="lib/UAP10/Plugin.ImageEdit.xml" />
103104
<file src="../ImageEdit/Plugin.ImageEdit.UWP/bin/Release/Plugin.ImageEdit.pdb" target="lib/UAP10/Plugin.ImageEdit.pdb" />
104105
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.dll" target="lib/UAP10/Plugin.ImageEdit.Abstractions.dll" />
105106
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.xml" target="lib/UAP10/Plugin.ImageEdit.Abstractions.xml" />
106107
<file src="../ImageEdit/Plugin.ImageEdit.Abstractions/bin/Release/Plugin.ImageEdit.Abstractions.pdb" target="lib/UAP10/Plugin.ImageEdit.Abstractions.pdb" />
108+
-->
107109

108110
<!--Xamarin.Mac
109111
<file src="../ImageEdit/Plugin.ImageEdit.Mac/bin/iPhone/Release/Plugin.ImageEdit.dll" target="lib/Xamarin.Mac20/Plugin.ImageEdit.dll" />

0 commit comments

Comments
 (0)