권장 : ASP의 DateAdd 기능에서 날짜를 추가하거나 빼는 방법 이 기사는 ASP의 DateAdd 함수에서 날짜 추가 또는 뺄셈의 사용을 소개합니다. 알아야 할 사람들은 그것을 언급 할 수 있습니다.
1. 그림에 워터 마크를 추가하십시오다음과 같이 코드를 복사하십시오 : www.cuoxin.com
<%
Dim JPEG '' ''// 변수를 선언합니다
jpeg = server.createobject ( "persits.jpeg") '' '' '// 호출 구성 요소를 설정합니다
jpeg.open server.mappath ( "aaa.jpg") '' ''// 소스 이미지 위치
jpeg.canvas.font.color = & h000000 '' ''// Watermark 글꼴 색상
JPEG.CANVAS.FONT.FAMILY = "安安" '' '' '// WARKMARK FONT
jpeg.canvas.font.size = 14 '' ''// Watermark 글꼴 크기
jpeg.canvas.font.bold = false '' ''// 대담합니까? 사용 : True
jpeg.canvas.font.bkmode = & hfffff '' ''// 글꼴 배경색
JPEG.CANVAS.PRINT 10, 10, "무패 장난 꾸러기 스튜디오" '' '' '// 워터 마크 텍스트, 두 개의 숫자 10은 워터 마크의 XY 좌표입니다.
jpeg.save server.mappath ( "aaa_05.jpg") '' ''// 워터 마크를 사용하여 새 이미지를 생성하고 위치를 저장하십시오.
jpeg = nothing '' ''// 구성 요소를 로그인하고 리소스를 해제하십시오.
response.write "<img src = aaa_05.jpg>" '' ''//이 페이지에서 워터 마크가 생성 된 후 이미지 표시
%>
2. 썸네일을 생성합니다
다음과 같이 코드를 복사하십시오 : www.cuoxin.com
<%
Dim JPEG '' ''// 변수를 선언합니다
jpeg = server.createobject ( "persits.jpeg") '' '' '// 호출 구성 요소를 설정합니다
jpeg.open server.mappath ( "aaa.jpg") '' ''// 원본 이미지 위치
jpeg.width = jpeg.originalWidth/4 '' '' ''// 그림의 너비가 원래 그림의 4 분의 1이라고 가정합니다.
jpeg.height = jpeg.originalheight/4 '' '' '// 이미지 높이가 원본 이미지의 1/4이라고 가정합니다.
jpeg.sharpen 1, 130 '' '' '// 선명한 효과를 설정하십시오
jpeg.save server.mappath ( "aaa_small.jpg") '' ''// 썸네일 위치 및 이름을 생성합니다
jpeg = nothing '' ''// 구성 요소를 로그인하고 리소스를 해제하십시오.
response.write "<img src = aaa_small.jpg>" '' ''//이 페이지에서 생성 된 썸네일 이미지 표시
%>
ASPJPEG 구성 요소의 고급 사용 방법 소개
ASPJPEG는 순수한 영어 버전의 매우 강력한 이미지 처리 구성 요소입니다. 그러나 무료 버전과 금이 간 버전이 있었지만 자세하고 심층적 인 소개를 제공하는 기사는 많지 않습니다. 있더라도 그림 축소판과 그림 마크 만 포함됩니다. 아마도 순수한 영어 때문일 수도 있습니다.
여기서는 이러한 문제에 대한 ASPJPEG의 고급 사용에 대해 이야기하겠습니다. 여기의 기술에는 주로 다음이 포함됩니다.
사진 썸네일
그림 마크
보안 코드 기술
그림 절단
사진 병합
데이터베이스 지원
더 드물게 사용되는 방법
그리고 일부 관련 실용 기술
ASPJPEG의 유일한 단점은 출력 방법이 비교적 단일이라는 것입니다. 여기서 우리는 주로 이미지를 저장 한 다음 호출하는이 출력 방법에 대해 이야기합니다. 또한 비교적 게으르기 때문에 일부 코드는 원본 문서에 여전히 인용되어 있으며 이해하지 못하는 것을 설명하겠습니다!
VB 또는 .NET을 연구 한 동지들은 한 눈에 그것을 이해할 것입니다. 브러시가 온다. 헤헤.
1. 그림 썸네일
다음과 같이 코드를 복사하십시오 : www.cuoxin.com
<%
jpeg = server.createobject ( "persits.jpeg") 호출 구성 요소를 설정합니다
path = server.mappath ( "이미지") & "/clock.jpg"이미지 경로가 보류됩니다
jpeg.open 경로 오픈 사진
높이와 너비는 원래 그림의 1/2입니다
jpeg.width = jpeg.originalWidth / 2
jpeg.height = jpeg.originalheight / 2
사진을 저장하십시오
jpeg.save server.mappath ( "이미지") & "/clock_small.jpg"
%>
<img src = "images/clock_small.jpg"> 처리 된 그림보기
2. 그림 마크
다음과 같이 코드를 복사하십시오 : www.cuoxin.com
<%
set jpeg = server.createobject ( "persits.jpeg")
jpeg.open server.mappath ( "images/dodge_viper.jpg")
글쓰기 시작
jpeg.canvas.font.color = & H000000 '' ''흰색
JPEG.CANVAS.FONT.FAMILY = "COURIER NEW"글꼴
JPEG.CANVAS.FONT.BOLD = 두껍게할지 여부
JPEG.CANVAS.PRINT 10, 10, "저작권 (C) XYZ, Inc."
인쇄 할 조정 x 인쇄 조정 y 문자 인쇄 할 문자
다음은 이미지의 테두리 처리입니다
jpeg.canvas.pen.color = & h000000 '' ''검은 색
jpeg.canvas.pen.width = 2 브러시 너비
JPEG.CANVAS.BRUSH.SOLID = 대담할지 여부
jpeg.canvas.bar 1, 1, jpeg.width, jpeg.height
x 좌표 시작 시작 y 좌표 입력 길이 입력 높이
jpeg.save server.mappath ( "images/dodge_viper_framed.jpg") 저장
%>
3. 보안 코드
Safe MA의 원리는 워터 마크 추가와 유사합니다. 많은 친구들이 나에게 특정 코드 기술에 대해 물었다. 그래서 나는 그것을 당신과 공유하기 위해 여기에 작성하겠습니다. 나는 평범한 사람들에 대해 말하지 않을 것입니다. 헤헤.
다음과 같이 코드를 복사하십시오 : www.cuoxin.com
<%
보안 코드를 생성하는 기능 www.wuyouw.com
함수 make_randomize (max_len, w_n) max_len은 길이를 생성하고, w_n : 0은 문자를 포함 할 수 있습니다.
무작위 화
intcounter = 1 to max_len의 경우
whatnext = int ((1-0+1)*rnd+w_n)
WhatNext = 0이면
상단 = 122
낮은 = 97
또 다른
상단 = 57
낮은 = 48
끝 If
strnewpass = strnewpass & chr (int ((상위 저하+1)*rnd)+하단)
다음
make_randomize = strnewpass
엔드 기능
%>
보안 코드의 그림을 생성하십시오. 물론 배경 사진을 미리 준비해야합니다.
다음과 같이 코드를 복사하십시오 : www.cuoxin.com
<%random_num = make_randomize (4,1)는 4 자리 보안 코드를 생성합니다
세션 ( "random_num") = random_num 왜 세션이 호출됩니까? 세션 보안 코드 없이는 완전히 의미가 없습니다. 헤헤
jpeg = server.createobject ( "persits.jpeg") 호출 구성 요소를 설정합니다
jpeg.open server.mappath ( "infos/random_pic/random_index.gif") 준비된 사진을 엽니 다
jpeg.canvas.font.color = & h006699
jpeg.canvas.font.family = "Arial Black"
jpeg.canvas.font.bold = false
jpeg.canvas.printtext 0, -2, random_num
jpeg.save server.mappath ( "infos/random_pic/random_index.bmp") 저장
%>
<img src = "infos/random_pic/random_index.bmp"align = "absmiddle">
직접하십시오. 헤헤.
4. 그림 절단
ASPJPEG를 모르는 사람들은 항상 그것을 자르기 위해 사용할 수 없다고 생각했습니다.
실제로 그러한 방법이 있습니다
작물 X1, Y1, X2, Y2
사각형의 왼쪽 상단 모서리의 x 좌표, y 좌표의 오른쪽 하단 모서리의 X 좌표를 자릅니다.
아래 시연을하겠습니다
set jpeg = server.createobject ( "persits.jpeg")
jpeg.open server.mappath ( "/pic/1.gif")
jpeg.width = 70
jpeg.height = jpeg.originalheight*70 / jpeg.originawidth
JPEG.Crop 0,0,70,52 시작 절단은 실제로 52 픽셀 이상의 하부를 제거합니다.
jpeg.save server.mappath ( "/temp_pic/small_1.gif") 저장
어때요, 매우 간단합니다
5. 사진 합병
여기서 우리는 dodge_viper.jpg 이미지에 로고 이미지를 추가하고 싶습니다.
실제로 이미지 병합 방법을 사용하여 워터 마크를 동적으로 인쇄 할 수도 있습니다.
다음과 같이 코드를 복사하십시오 : www.cuoxin.com
set photo = server.createObject ( "persits.jpeg")
photopath = server.mappath ( "이미지") & "/dodge_viper.jpg"
photopat를 열었습니다
set logo = server.createobject ( "persits.jpeg")
logopath = server.mappath ( "이미지") & "/clock.jpg"
로고
logo.width = 70
logo.height = logo.width * logo.originalHeight / logo.originalWidth
photo.DrawImage 0, 0, 로고
Photo.sendbinary
여기서 우리는 sendbinary의 출력 방법을 사용합니다. 물론 변경된 Dodge_viper.jpg를 먼저 저장 한 다음 입력 할 수도 있습니다. 나는 개인적으로 Sendbinary 방법을 사용하는 것을 좋아하지 않으며 인터넷 속도가 느리면 실수를 쉽게하는 것이 쉽습니다. 속도가 좋지 않습니다. 헤헤.
6. 데이터베이스 지원
나는 여기서 많이 말하지 않을 것입니다. 실제로, 그것은 이진 방법입니다. 우리 모두 알다시피, 이미지는 데이터베이스에 저장 될 때만 이진 파일로만 저장할 수 있습니다. 그래서 나는 코드를 작성하는 것이 게으르다.
7. 더 많은 방법
캔버스 라인 (왼쪽, 상단, 오른쪽, 하단)
직선을 그립니다
canvas.ellipse (왼쪽, 상단, 오른쪽, 하단)
타원을 그립니다
Canvas.circle (X, Y, RADIUS)
원을 그립니다
Canvas.bar (왼쪽, 상단, 오른쪽, 하단)
코드가있는 사각형을 그립니다
Canvas.font.shadowColor
텍스트 그림자 색상
canvas.font.shadowxoffset만큼
그림자 X 좌표 설정
canvas.font.shadowyoffset만큼
Y 좌표 설정
string으로 canvas.font.bkmode
텍스트 배경
====================================================
오늘은 그림에 워터 마크를 추가하는 ASP에 대한 지식에 대해 말씀 드리겠습니다.
ASP는 이미지에 워터 마크를 추가하기 위해 구성 요소가 필요합니다 ... 일반적으로 사용되는 것들은 중국인들이 개발 한 ASPJPEG 및 WSIMAGE를 포함합니다 ... 전자는 30 일 동안 무료입니다 ... 후자는 완전히 무료입니다 ... 물론 중국 제품을 사용해야합니다 ... hehe ... hehe ...
구성 요소를 등록하는 방법 :
명령 프롬프트에 "regsvr32 [dll path]"를 입력하십시오
이미지에 워터 마크를 추가하는 것은 이미지 크기를 얻은 다음 워터 마크를 작성하는 것 이상입니다 ... ASP 코드는 제어 구성 요소 역할 만합니다. 코드를 사용하여 모든 것을 설명하십시오.
1 : 이미지 크기를 얻으십시오 (여기는 픽셀 값으로 표현됩니다. Photoshop을 공부하는 친구들은 이해해야합니다)
다음과 같이 코드를 복사하십시오 : www.cuoxin.com
<%
set obj = server.createobject ( "wsimage.resize") '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''콜 컴포넌트를 설정하십시오
obj.loadsoucepic server.mappath ( "25.jpg") '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''그림 이름은 25.jpg입니다.
obj.getSourceinfo iwidth, iheight
응답. "이미지 너비 :"& iwidth & "<br>" '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '을' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''00''''''eame' '' '' '' '' '' '' '' '' '' '''- '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''을 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '''00''''''eame '' '' '' '' '' '' '' '' '' '' ''-
응답. "이미지 높이 :"& iheight & "<br>" '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''을 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '''00''''''eame '' '' '' '' '' '' '' '' '' '' ''- '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''을 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''0' '' '' '' '' '' '' '' '' ',
strerror = obj.errorinfo
Strerror <> ""라면
응답. obj.errorinfo를 작성하십시오
끝 If
obj.free
OBJ = 아무것도 설정하지 않습니다
%>
2 : 텍스트 워터 마크를 추가하십시오
다음과 같이 코드를 복사하십시오 : www.cuoxin.com
<%
set obj = server.createobject ( "wsimage.resize")
obj.loadsoucepic server.mappath ( "25.JPG" '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '',
obj.quality = 75
obj.txtmarkfont = "중국 색상 클라우드" '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '워터 마크 텍스트 글꼴 설정
obj.txtmarkBond = false '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '워진 텍스트의 두께가 설정
obj.markrotate = 0 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '워터 마크 텍스트의 회전 각도
obj.txtMarkHeight = 25 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '워드 마크 텍스트의 높이
obj.addtxtmark serv.mappath ( "txtmark.jpg"), "Take You Out", & h00ff00 &, 10, 70
strerror = obj.errorinfo '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '이미지 이름이 생성되고 텍스트 색상은 이미지 위치의 워터 마크입니다.
Strerror <> ""라면
응답. obj.errorinfo를 작성하십시오
끝 If
obj.free
OBJ = 아무것도 설정하지 않습니다
%>
3 : 이미지 워터 마크를 추가하십시오
다음과 같이 코드를 복사하십시오 : www.cuoxin.com
<%
set obj = server.createobject ( "wsimage.resize")
obj.loadsoucepic server.mappath ( "25.JPG" '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '',
obj.loadimgmarkpic server.mappath ( "blend.bmp") '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''을 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''시키는 것은 '' ''(
obj.quality = 75
obj.addimgmark server.mappath ( "imgmark.jpg"), 315, 220, & hfffff, 70
strerror = obj.errorinfo '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '이미지 이름이 생성되고 텍스트 색상은 이미지 위치의 워터 마크입니다.
Strerror <> ""라면
응답. obj.errorinfo를 작성하십시오
끝 If
obj.free
OBJ = 아무것도 설정하지 않습니다
%>
실제로 이미지에 워터 마크를 추가하는 것은 간단합니다. 그런 다음 Wsimage.dll 구성 요소의 두 가지 주요 용도에 대해 이야기하고 있습니다. 포함:
그림을 자르고 그림의 축소판을 생성하십시오.
익숙해지면 코드에 주석을 추가하겠습니다.
잘린 사진 :
다음과 같이 코드를 복사하십시오 : www.cuoxin.com
<%
set obj = server.createobject ( "wsimage.resize")
obj.loadsoucepic server.mappath ( "25.jpg")
obj.quality = 75
obj.cropimage server.mappath ( "25_crop.jpg"), 100,10,200,200 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''이미지 이름을 생성하십시오.
strerror = obj.errorinfo
Strerror <> ""라면
응답. obj.errorinfo를 작성하십시오
끝 If
obj.free
OBJ = 아무것도 설정하지 않습니다
%>
자세한 설명 : Cropimage는 WSIMAGE의 CropImage 방법을 사용합니다. 이미지 생성을 정의 할 때 100과 10은 왼쪽 상단 코너의 컷 포인트, 즉 이미지의 왼쪽에있는 100 픽셀, 상단에 10 픽셀입니다. 마지막 두 200은 컷 광대역과 높이와 높이를 나타냅니다.
이미지 썸네일 생성 :
다음과 같이 코드를 복사하십시오 : www.cuoxin.com
<%
set obj = server.createobject ( "wsimage.resize")
obj.loadsoucepic server.mappath ( "25.jpg") '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''을 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '
obj.quality = 75
obj.outputspic server.mappath ( "25_s.jpg"), 0.5,0.5,3 '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '을' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '을' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '''- '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '을' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '을' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''-
strerror = obj.errorinfo
Strerror <> ""라면
응답. obj.errorinfo를 작성하십시오
끝 If
obj.free
OBJ = 아무것도 설정하지 않습니다
%>
자세한 설명 :
썸네일을 내보내는 4 가지 방법이 있습니다 .
(1) obj.outputspic server.mappath ( "25_s.jpg"), 200,150,0
200은 출력 너비이고 150은 출력 높이입니다. 이 출력 양식은 강제 출력 폭과 높이로 이미지 변형을 유발할 수 있습니다.
(2) obj.outputspic server.mappath ( "25_s.jpg"), 200,0,1
출력 너비로 200을 사용하면 출력 높이가 열로 스케일링됩니다.
(3) obj.outputspic server.mappath ( "25_s.jpg"), 0,200,2
출력 높이로 200을 사용하면 출력 폭이 열로 스케일링됩니다.
(4) obj.outputspic server.mappath ( "25_s.jpg"), 0.5,0.5,3
첫 번째 0.5는 생성 된 썸네일이 원래 이미지의 너비의 절반이라는 것을 의미합니다. 이는 폭 감소 비율을 의미합니다.
두 번째 0.5는 생성 된 썸네일이 원래 이미지의 높이의 절반이므로 높은 감소 비율을 의미합니다.
폭과 높이의 일관된 감소는 원래 이미지가 축소 될 것임을 의미합니다. 폭과 높이의 줌 비율이 1보다 크면 원래 이미지가 확대됩니다.
재 인쇄 : http://hi.baidu.com/miracle521/blog/item/e3419133fdc00746ac4b5f25.html
2-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
워터 마크로 사진 ASP.NET를 업로드합니다 (텍스트 워터 마크, 그림 워터 마크, 텍스트 + 그림 워터 마크)
그림에 워터 마크 추가 (텍스트 워터 마크, 그림 워터 마크, 텍스트 + 그림 마크)
생식 이미지 :
그림 500) this.width = 500 "테두리 = 0 <
Watermark 500) this.width = 500 "Border = 0 <
그림에 워터 마크를 추가 한 후 (오른쪽 상단 + 바로 아래에 참고)
500) this.width = 500 "테두리 = 0 <
암호:drawimg.cs
다음과 같이 코드를 복사하십시오 : www.cuoxin.com
시스템 사용;
System.Drawing 사용;
System.Drawing.imaging 사용;
System.Drawing.Drawing2d 사용;
공개 수업 drawimg
{
개인 문자열 WARKINGDIRECTORY = String.Empty; //길
개인 문자열 imagename = string.empty; // 처리 된 이미지
개인 문자열 imageWater = String.Empty; // 워터 마크 이미지
개인 문자열 fontstring = string.empty; // 워터 마크 텍스트
Enum DealType {없음, 물 - 물, 워터 폰트, Doubledo}; // enum 명령
개인 거래 유형 거래 유형;
공개 끄기 ()
{}
공개 문자열 publicworkingdirectory
{
얻다
{
WorkingDirectory 반품;
}
세트
{
WorkingDirectory = value;
}
}
공개 문자열 publicimagename
{
얻다
{
ImageName 리턴;
}
세트
{
imageName = value;
}
}
공개 문자열 publicimagewater
{
얻다
{
ImageWater를 반환합니다.
}
// WaterMark 이미지를 설정하면 WaterMark 이미지 효과를 사용하려는 것을 의미합니다.
{
DealType = DECENTTYPE.WATERIMAGE;
ImageWater = 값;
}
}
공개 문자열 publicfontstring
{
얻다
{
폰트 스트링 리턴;
}
SET // WaterMark 텍스트가 설정된 경우 WaterMark 텍스트 효과가 필요함을 의미합니다.
{
DealType = DECENTTYPE.WATERFONT;
fontstring = 값;
}
}
공공 공간 거래 ()
{
isdouble ();
스위치 (거래 유형)
{
Case DealType.WaterFont : writeFont (); 부서지다;
Case DealType.Waterimage : writeImg (); 부서지다;
Case DealType.doubledo : writefontandimg (); 부서지다;
}
}
개인 void isdouble ()
{
if (imageWater+""! = ""&& fontstring+""! = "")
{
DealType = DealType.Doubledo;
}
}
private void writefont ()
{
// 작업 디렉토리를 설정합니다
// String workingDirectory = @"c :/watermark_src/waterpic";
// 저작권 메시지로 사용할 텍스트 문자열을 정의합니다.
// String Copyright = "Copyright? 2002 -AP Photo/David Zalubowski";
// WaterMark에 사진이 포함 된 이미지 개체를 만듭니다
이미지 imgphoto = image.fromfile (WorkingDirectory + imageName);
int phwidth = imgphoto.width;
int phheight = imgphoto.height;
// 원래 사진의 크기를 비트 맵 작성합니다
비트 맵 bmphoto = 새로운 비트 맵 (phwidth, phheight, pixelformat.fixelformat.format24bpprgb);
bmphoto.setresolution (imgphoto.horizontalresolution, imgphoto.verticalresolution);
// 비트 맵을 그래픽 객체에로드합니다
그래픽 Grphoto = Graphics.fromimage (bmphoto);
//-----------------------------------------------------------------------------------------------------------------------------
// 1 단계 - 저작권 메시지를 삽입합니다
//-----------------------------------------------------------------------------------------------------------------------------
//이 그래픽 객체의 렌더링 품질을 설정합니다
grphoto.smoothingmode = smoothingmode.antialias;
// 사진 이미지 객체를 그래픽 객체에 원래 크기로 그립니다.
grphoto.DrawImage (
imgphoto, // 사진 이미지 개체
새로운 사각형 (0, 0, phwidth, phheight), // 사각형 구조
0, // 소스 이미지 부분의 x- 코디네이션.
0, // 소스 이미지 부분의 y 코디네이션.
phwidth, // 소스 이미지 부분의 너비.
phheight, // 소스 이미지 부분의 높이.
GraphicsUnit.pixel); // 측정 단위
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// 저작권 메시지의 크기를 최대화하려면
// 여러 글꼴 크기를 테스트하여 가능한 가장 큰 것을 결정합니다
// 사진 너비에 사용할 수있는 글꼴
// 가능한 한 고려하고 싶은 포인트 크기를 정의하십시오.
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
int [] 크기 = 새로운 int [] {16,14,12,10,8,6,4};
글꼴 crfont = null;
sizef crsize = new sizef ();
// 정의 된 크기를 통한 루프는 저작권 문자열의 길이를 확인합니다.
// 픽셀의 길이가 더 적은 경우 이미지 너비 가이 글꼴 크기를 선택하십시오.
for (int i = 0; i <7; i ++)
{
// 글꼴 객체를 Arial (I) Pt, Bold로 설정합니다
// crfont = new Font ( "arial", size [i], fontstyle.bold);
crfont = 새로운 글꼴 ( "arial", 크기 [i], fontstyle.bold);
//이 글꼴에서 저작권 문자열을 측정합니다
crsize = grphoto.measurestring (fontstring, crfont);
if ((ushort) crsize.width <(ushort) phwidth)
부서지다;
}
// 모든 사진은 다양한 높이를 가지므로 a
// 이미지 하단에서 5%를 배치합니다
int ypixlesfrombottom = (int) (phheight *.05);
// 이제 포인트 크기가 있으므로 저작권 문자열 높이를 사용하십시오.
// 사진의 문자열을 그리는 y 좌표를 결정하려면
float yposfrombottom = ((phheight -ypixlesfrombottom) - (crsize.height/2));
// 이미지 너비의 중심을 계산하여 X 좌표를 결정합니다.
float xcenterofimg = (phwidth/2);
// 텍스트 정렬을 중앙에 설정하여 텍스트 레이아웃을 정의합니다.
StringFormat strformat = new StringFormat ();
strformat.alignment = stringalignment.center;
// 반 트라스 파렌트 블랙 인 브러시 정의 (알파가 153으로 설정)
solidbrush semitransbrush2 = 새로운 solidbrush (color.fromargb (153, 0, 0, 0));
// 저작권 문자열을 그립니다
grphoto.drawstring (fontstring, // 텍스트 문자열
crfont, // 글꼴
semitransbrush2, // 브러시
New Pointf (XCENTEROFIMG+1, yposfrombottom+1), // 위치
strformat);
// 반 트라스 파렌트 흰색 인 브러시 정의 (알파가 153으로 설정)
SolidBrush Semitransbrush = New SolidBrush (Color.FromArgB (153, 255, 255, 255));
// 저작권 문자열을 두 번째로 그려 그림자 효과를 만듭니다.
//이 텍스트 1 픽셀을 오른쪽과 아래로 1 픽셀로 이동하십시오.
grphoto.drawstring (fontstring, // 텍스트 문자열
crfont, // 글꼴
Semitransbrush, // 브러시
New Pointf (XCENTEROFIMG, yposfrombottom), // 위치
strformat);
imgphoto = bmphoto;
grphoto.dispose ();
// 새 이미지를 파일 시스템에 저장합니다.
imgphoto.save (WorkingDirectory + imageName + "_finally.jpg", ImageFormat.jpeg);
imgphoto.dispose ();
// 텍스트 정렬
}
공유 : ASP 중국인 문제 해결책 언어가 달린 문제가 존재하더라도 ASP도 예외는 아닙니다. 이 기사는 ASP에서 차량 코드를 해결하는 방법을 소개합니다. 필요한 친구는 그것을 참조 할 수 있습니다.