网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月25日
漏签
0
天
easyx吧
关注:
10,919
贴子:
46,893
看贴
图片
吧主推荐
游戏
6
回复贴,共
1
页
<<返回easyx吧
>0< 加载中...
如何贴出圆形图片解决方案
只看楼主
收藏
回复
最爱哥哥5
四年级
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
跟贴吧精品中透明度控制那个贴有些类似。运行效果是这样的。
最爱哥哥5
四年级
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
因为看到贴吧有吧友在问这类的问题,我今天有些时间就写了一下,基本思路就是先读取背景图片保存到数组中,然后对目标图片的信息存储的数组进行操作,也就是判断是否在园内,园内则贴要贴的图,圆外就是背景图。
最爱哥哥5
四年级
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
#include <graphics.h>
#include <conio.h>
/**
程序名称: 圆形图片的贴出
作者: LangLang
编译环境: VC6.0/easyx(VS下应该也能运行)
修改时间: 2017/06/19
*/
//实现贴出圆形图案
void myputimage(int x,int y,IMAGE* img,int r){
//获取要贴的图片的尺寸
int w = img->getwidth();
int h = img->getheight();
//确定圆心的位置
POINT ptCenter;
ptCenter.x = w / 2; ptCenter.y = h / 2;
IMAGE imgBack(w, h); //背景图
getimage(&imgBack, x, y, w, h); //获取背景图
IMAGE imgResult(w,h); //要贴的图
//图片的相关信息都存储在数组中
DWORD* M = GetImageBuffer(&imgBack);
DWORD* N = GetImageBuffer(img);
DWORD* RS = GetImageBuffer(&imgResult);
//计算与赋值
int i,j;
for(i=0; i<h; i++){
for(j=0; j<w; j++){
//圆外面
if((ptCenter.x-j)*(ptCenter.x-j)+(ptCenter.y-i)*(ptCenter.y-i)>=r*r){
RS[i*w+j] = M[i*w+j];
}
else{
RS[i*w+j] = N[i*w+j];
}
}
}
//以圆的外接正方形的左上角顶点为顶点,贴出已经处理好的图片
putimage(x-(w-2*r)/2,y-(h-2*r)/2,&imgResult);
}
int main(){
initgraph(640,480);
IMAGE img0;
loadimage(&img0,_T("D:\\2.jpg"));
putimage(0,0,&img0); //贴出背景图
IMAGE img;
loadimage(&img,_T("D:\\1.jpg"));
myputimage(0,0,&img,80);//贴出圆形图
myputimage(200,150,&img,150);
_getch();
closegraph();
return 0;
}
最爱哥哥5
四年级
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
最爱哥哥5
四年级
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
总体来说没什么亮点,希望可以帮助到某些吧友,也是抛砖引玉吧。
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示